Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用mysql语句的for循环_Python_Mysql_Pymysql - Fatal编程技术网

Python 使用mysql语句的for循环

Python 使用mysql语句的for循环,python,mysql,pymysql,Python,Mysql,Pymysql,我在python中使用pymysql来处理mysql服务器,我需要一些不同列的交叉引用 为此,我在python中应用了一个for循环,使用 for i in range(10): sqlstat = 'select refs from `pcite` where id = id_paper(i) ;' 但这不起作用。问题似乎是迭代器i。有办法解决这个问题吗?正如我在评论中所说,这与循环无关。只是你的代码不是代码,只是一个字符串。如果需要一个字符串来包含调用函数的结果,则需要在字符串之外

我在python中使用pymysql来处理mysql服务器,我需要一些不同列的交叉引用

为此,我在python中应用了一个for循环,使用

for i in range(10):
    sqlstat = 'select refs from `pcite` where id = id_paper(i) ;'

但这不起作用。问题似乎是迭代器i。有办法解决这个问题吗?

正如我在评论中所说,这与循环无关。只是你的代码不是代码,只是一个字符串。如果需要一个字符串来包含调用函数的结果,则需要在字符串之外进行调用,并插入结果:

sqlstat = 'select refs from `pcite` where id = {};'.format(id_paper(i))
但是请注意,由于这是一条SQL语句,您不应该对值进行插值,而是将它们传递给execute方法:

sqlstat = 'select refs from `pcite` where id = %s;'
cursor.execute(sqlstat, [format(id_paper(i)])

怎么了?什么不起作用?
id\u paper(i)
应该在Python代码中调用函数吗?事实并非如此。id文件(i)应该只给我特定的id号,就像我想做一系列mysql语句一样:从
pcite
中选择refs,其中id=12312,从
pcite
中选择refs,其中id=12323等等。但是你没有调用这个函数。您只有一个包含该文本的字符串。这与循环无关;如果你想真正执行代码,你需要把它放在字符串之外并插入结果。当然,我的脚本比我写的要复杂一点,但我认为基本问题就在问题中。我怎么能重复这样的语句呢?谢谢,这正是我所需要的。如果我的措辞不清楚,我很抱歉,我不是程序员:)