Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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的每一行_Python_Mysql_For Loop - Fatal编程技术网

在Python中使用不同的值更新MySQL的每一行

在Python中使用不同的值更新MySQL的每一行,python,mysql,for-loop,Python,Mysql,For Loop,总而言之。我在数据库MySQL的一行中有数据。此数据在脚本中用于计算值。for循环用于为表中的每一行计算此值。 问题是:存储在变量中的结果意味着必须在同一行的不同列中更新 我试图在for循环中包含update命令,但出现了一个错误,请参见下文。如果我没有在for循环中包含update命令,我只会得到最后一行的结果,但所有行都是如此 剧本: for row in rows: for col in row: x = map(str.strip,col.lower().

总而言之。我在数据库MySQL的一行中有数据。此数据在脚本中用于计算值。for循环用于为表中的每一行计算此值。 问题是:存储在变量中的结果意味着必须在同一行的不同列中更新

我试图在for循环中包含update命令,但出现了一个错误,请参见下文。如果我没有在for循环中包含update命令,我只会得到最后一行的结果,但所有行都是如此

剧本:

for row in rows:
     for col in row:
           x = map(str.strip,col.lower().split())
           st = map(lambda wo: abo.get(wo, 0), x)
           meant = numpy.meant(st)
           cur.execute("""UPDATE table_x SET result = %s Where text = %s""",(meant, rows))
不幸的是,我遇到了以下错误:

Programming Error: (1064, 'You have an error in your SQL syntax; check the manual... 
如何使用该行的每个计算值更新该列?

因为我看到行是列表或iterable

在查询中,您将占位符绑定为行而不是行

cur.executeUPDATE表_x SET result=%s,其中text=%s,means,行


这很可能会产生语法错误。

不要删除错误消息。请显示整个错误消息我本人对python非常陌生,但是:我认为在查询中使用三重引号实际上会将其注释掉,因此有效地使用cur.execute,也就是说,行作为查询command@khaverim不,三重引号并不意味着注释。@hjpotter92它们在Python中肯定有注释。我经常使用它们…但我从中得到的信息是,在一个方法中,比如.execute三重引号不会注释掉任何东西。谢谢描述和代码有点混乱。你能提供一个简单的例子来说明原始数据,以及在计算后数据应该如何更新吗?我认为row也是可行的,非常感谢你的帮助。我把它改成了行,但没有成功。。。错误消息:ProgrammingError:1064,您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行附近使用的正确语法。我使用了rows,因为我在for循环之前声明了rows=cur.fetchall