【发布时间】:2018-06-22 17:25:21
【问题描述】:
我有三个 python 列表,每个列表大约有 150 万个条目,我想将它们插入到一个新的 SQLite 表中。执行此操作时出现错误:
OperationalError: no such column: days
这是我的代码:
con = sqlite3.connect('database.db')
cur = con.cursor()
...
cur.execute("DROP TABLE IF EXISTS days")
cur.execute("CREATE TABLE IF NOT EXISTS days(DAYS_NEEDED integer, RAISED_TIME text, POSTED_TIME text)")
cur.execute("INSERT INTO days (DAYS_NEEDED, RAISED_TIME, POSTED_TIME) VALUES (days, rt_list, pt_list)")
con.commit()
"days" 是整数列表,rt_list 和 pt_list 都是字符串列表。有谁知道我在这里做错了什么?
非常感谢任何帮助!
【问题讨论】:
-
你的列表是字符串,这样不行,你必须使用
VALUES (?, ?, ?) -
@meow 你是这个意思吗?
cur.execute("INSERT INTO days (DAYS_NEEDED, RAISED_TIME, POSTED_TIME) VALUES (?,?,?)", (days, rt_list, pt_list)) -
是的,像这样,但我认为它需要一个元组列表而不是一个列表元组(尽管我从未尝试过,所以请告诉我这是否也有效)。请参阅我的答案以获取更详细的版本,应该可以直接使用。
标签: python list sqlite sql-insert