Python mycursor.executemany更新未按预期工作 问题:

Python mycursor.executemany更新未按预期工作 问题:,python,mysql,python-3.x,mysql-python,Python,Mysql,Python 3.x,Mysql Python,我有一个python脚本,它获取2个变量并将它们存储在2个列表中。然后,我使用executemany更新MySQL数据库,使用一个变量匹配预先存在的行,将另一个变量插入其中 代码: Python脚本 MySQL更新代码打印 MySQL更新代码打印输出 表的前两行 预期结果 第一个变量是名称,即需要匹配的变量。第二个变量是要更新到行的族。名称完全匹配,并且在运行程序时没有错误,但是所有族值都为空 不确定解决这个问题的最佳方法是什么,我想我可以做一个小提琴,但不确定ExecuteMy中的列表是什么

我有一个python脚本,它获取2个变量并将它们存储在2个列表中。然后,我使用executemany更新MySQL数据库,使用一个变量匹配预先存在的行,将另一个变量插入其中

代码: Python脚本 MySQL更新代码打印 MySQL更新代码打印输出 表的前两行

预期结果 第一个变量是名称,即需要匹配的变量。第二个变量是要更新到行的族。名称完全匹配,并且在运行程序时没有错误,但是所有族值都为空

不确定解决这个问题的最佳方法是什么,我想我可以做一个小提琴,但不确定ExecuteMy中的列表是什么

其他 如果你需要更多的信息,请告诉我

谢谢

我刚才不得不补充:

mydb.commit()
之后


我能问个问题吗?任何名称的值都是
Pinnacle Ridge
。因为我运行了一个小示例,比如
cur.executemany(“更新测试集col=%s,其中col=%s)”,[((“a”,“1”),(“b”,“2”)])
,所以它运行得很好。很抱歉,我不确定我是否完全理解名称值是AMD Ryzen 5 2600,Intel Core i7-8700k等。该系列是Pinnacle Ridge,Coffe-Lake-S.我不确定订单是否不正确,如果是,我如何重新安排?我认为你应该解决你的问题,你打印的内容和你在ExecuteMy中使用的内容是不同的。事实上,你的情况让我很困惑。我创建了一个类似的表,并首先在
\u titles
中插入所有值。然后使用部分代码(for循环之前),我得到了你想要的
| AMD Ryzen 5 2600 | Pinnacle Ridge | Intel Core i7-8700K | Coffee Lake-S | AMD Ryzen 7 2700X | Pinnacle Ridge | AMD Ryzen 3 2200G | Raven Ridge |
对不起,我不知道你的意思,我正在努力实现家庭的梦想按名称与行匹配?你知道我需要在代码中修改什么来实现这一点吗?
sql = "UPDATE cpu set family = %s where name = %s"
mycursor.executemany(sql, list(zip(_cpus, _titles)))
print(sql, list(zip(_cpus, _titles)))
UPDATE cpu set family = %s where name = %s [('Pinnacle Ridge', 'AMD Ryzen 5 2600'), ('Coffee Lake-S', 'Intel Core i7-8700K'),...
mydb.commit()
executemany