【问题标题】:Python: Can't insert list values into a mysql columnPython:无法将列表值插入 mysql 列
【发布时间】:2018-07-08 09:26:24
【问题描述】:

我有一个整数列表list = [1, 2, 3]

还有一个第二列为空的mysql表:

key value
a 
b
c

我想用我列表中的值填充value 列,以使表格如下所示:

key value
a   1
b   2
c   3

但我总是收到 TypeError: 'int' object is not iterable

我的python代码是:

conn = MySQLdb.connect(host="localhost", user="root", passwd="root")
cursor = conn.cursor()
list = [1, 2, 3]
cursor.executemany("INSERT INTO my_table (value) VALUES %d", list)

我该如何解决问题并填充空列? 谢谢!

P.S.:这只是一个示例。实际上,列表和表格要大得多。

【问题讨论】:

    标签: python mysql mysql-python


    【解决方案1】:

    您需要一个列表或元组的列表。

    my_list = [[1], [2], [3]]
    

    (另外,不要用您自己的变量覆盖内置的list() 类型。)

    【讨论】:

    • 谢谢!但现在我得到_mysql_exceptions.ProgrammingError: %d format: a number is required, not str。将 %d 更改为触发 1064, "You have an error in your SQL syntax; 的 %s。尝试了this stackoverflow ticket 的解决方案,但也不喜欢。我该如何解决这个问题?
    • 占位符应始终为%s
    • 我已将最后一行更改为cursor.executemany("INSERT INTO my_table (value) VALUES %s", list),但出现另一个错误:1064, "You have an error in your SQL syntax;。你能告诉我如何解决这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 2021-01-05
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多