【问题标题】:How to insert a list containing values seperated by comma into MySQL database using python如何使用python将包含用逗号分隔的值的列表插入MySQL数据库
【发布时间】:2018-07-09 10:25:27
【问题描述】:

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

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

其中“interval_list”是列表变量,它具有我想要插入“time_Interval”表的“time_interval_list”列的值。代码正在运行,但未插入值。然后我尝试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))

同样,代码运行良好,但插入了一个问号列表。我找不到解决方案。

如何正确地做到这一点。任何建议将不胜感激

【问题讨论】:

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


    【解决方案1】:

    尝试改变

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

    var_string = ','.join(interval_list)
    

    【讨论】:

    • 感谢您的回复,实际上我必须将其转换为字符串列表
    【解决方案2】:

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

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

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

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

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

    此命令非常快速地将数据批量插入到数据库表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多