我的代码
import csv
import sqlite3
from datetime import datetime
con = sqlite3.connect('D:/database.db')
cur = con.cursor()
cur.execute('''DROP TABLE IF EXISTS data''')
cur.execute('''CREATE TABLE data(answer TEXT, reply TEXT)''')
with open('D:/database.xls.csv','rt', encoding = 'utf-8', errors = 'ignore') as fin:
reader = csv.reader(fin)
to_db = [tuple(line) for line in reader]
cur.executemany('''INSERT INTO data (answer, reply) VALUES (?, ?)''', [to_db])
con.commit()
con.close()错误:
Traceback (most recent call last):
File "C:\Users\runol\source\repos\AI_ChatBot\AI_ChatBot\AI_ChatBot.py", line 19, in <module>
cur.executemany('''INSERT INTO data (answer, reply) VALUES (?, ?)''', [to_db])
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 2, and there are 631248 supplied.第19行如下所示:cur.executemany('''INSERT INTO data (answer, reply) VALUES (?, ?)''', (to_db))
然后我尝试使用逗号和列表:cur.executemany('''INSERT INTO data (answer, reply) VALUES (?, ?)''', (to_db,)) cur.executemany('''INSERT INTO data (answer, reply) VALUES (?, ?)''', [to_db])
错误保持不变
发布于 2020-11-03 10:18:40
to_db已经是一个元组列表-不需要用另一个列表包装它。([to_db])
所以下面的固定线路应该能正常工作
cur.executemany('''INSERT INTO data (answer, reply) VALUES (?, ?)''', to_db)https://stackoverflow.com/questions/64660716
复制相似问题