gpt4 book ai didi

python-3.x - PyMySQL executemany INSERT 来自变量的列表

转载 作者:行者123 更新时间:2023-12-05 09:12:57 31 4
gpt4 key购买 nike

我正在尝试使用 pymysql 在 mysql 表中插入一些数据,但失败了。数据已经保存在变量中,因此我需要将它们传递给 INSERT 语句。

这就是我目前正在尝试的...

con = pymysql.connect(host='*.*.*.*', port=***, user='****', 
passwd='***', db='****')
with con:
cur = con.cursor()
sql = ("INSERT INTO groupMembers (groupID, members) VALUES (%s, %s)")
data = (groupID, (x for x in membersList))
cur.executemany(sql, data)
con.commit()
con.close()

我尝试传递的数据如下所示....

groupID = G9gh472

membersList = [戴夫、鲍勃、迈克、比尔、科林]

列表的长度未知,可以变化结果表我想看起来像这样......

| groupID | members |
+---------+---------+
| G9gh472 | Dave |
| G9gh472 | Bob |
| G9gh472 | Mike |
| G9gh472 | Bill |
| G9gh472 | Colin |

我在阅读其他答案的基础上尝试了一些变体,但到目前为止我的尝试都没有奏效。谢谢大家

最佳答案

According to the pymysql docs executemany 函数需要一个 Sequence 序列或数据映射。

你可以做到

data = list([(groupID, x) for x in membersList]) # Create a list of tuples

应该可以解决问题。这是更新后的代码片段-

con = pymysql.connect(host='*.*.*.*', port=***, user='****', 
passwd='***', db='****')
with con:
cur = con.cursor()
sql = ("INSERT INTO groupMembers (groupID, members) VALUES (%s, %s)")
data = list([(groupID, x) for x in membersList]) # Create a list of tuples
cur.executemany(sql, data)
con.commit()
con.close()

关于python-3.x - PyMySQL executemany INSERT 来自变量的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57120763/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com