如何使用python将包含由逗号分隔的值的列表插入到MySQL数据库中

时间:2018-01-30 13:48:52

标签: python mysql list sql-insert mysql-python

我必须使用Python将具有整数值的列表插入到MySQL数据库表的列中。首先我试过

cur.execute("insert into time_Interval (name, time_interval_list) values (%s, %s)",\
        #   (user_name, interval_list))

where" interval_list"是列表变量,具有我想插入的值" time_interval_list" " time_Interval"的列表。代码正在运行但不插入值。然后我尝试this solution将代码更改为

var_string = ','.join('?' * len(interval_list))
cur.execute("insert into time_Interval (name, time_interval_list) values (%s, %s)",\
            (user_name, var_string))

同样,代码工作正常但插入了问号列表。我无法找到解决方案。

如何正确执行此操作。任何建议将不胜感激

2 个答案:

答案 0 :(得分:0)

尝试更改

var_string = ','.join('?' * len(interval_list))

var_string = ','.join(interval_list)

答案 1 :(得分:0)

以下代码帮助我使用Python将数据批量插入数据库表。

您可以先从要插入的数据中创建一个元组元组,如下所示

var_string = ','.join(cur.mogrify("(%s,%s)", x).decode('utf-8') for x in interval_list)

interval_list将包括创建元组元组的name和time_interval_list值。然后运行exceute命令,将元组的元组作为值的输入。

cur.execute("INSERT INTO time_Interval (name, time_interval_list) VALUES " + var_string)

此命令可以非常快速地将数据大量插入数据库表。