将整数列表插入数据库列

时间:2018-09-09 14:00:52

标签: sql python-3.x sqlite

我正在尝试将整数列表插入数据表的列中。如果我运行以下代码:

c.executemany("INSERT INTO my_datatable('Column 1') VALUES (?)", list_with_integers)
conn.commit()

我收到以下错误:

c.executemany("INSERT INTO my_datatable('Column 1') VALUES (?)", list_with_integers)
ValueError: parameters are of unsupported type

我不明白我在做什么错。我已经检查并确保列表中的所有元素都是整数,并且如果我尝试运行

c.executemany("INSERT INTO my_datatable('Column 1') VALUES (?)", [list_with_integers])

我得到:

c.executemany("INSERT INTO my_datatable('Column 1') VALUES (?)", [list_with_integers])
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 559 supplied.

问题:如何解决此问题并将整数列表插入列?

1 个答案:

答案 0 :(得分:1)

executemany方法的参数应该是一个元组序列,因此您应该将整数列表转换为一个1元组序列:

c.executemany("INSERT INTO my_datatable('Column 1') VALUES (?)", map(lambda i: (i,), list_with_integers))