我正在尝试将包含数据的列表插入到.db文件中 下面是db文件的布局。
排名是 INTEGER
描述为 TEXT
我在下面有以下Python代码和SQlite查询,
我收到了错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1536, in __call__
return self.func(*args)
line 136, in DB_Entry
top_ten.execute('INSERT INTO Top_Ten VALUES(?,?)', [range(1,11),SMH_LADDER[:10]],)
InterfaceError: Error binding parameter 0 - probably unsupported type.
下面是python代码:
def DB_Entry():
# Create a connection to the database.
connection = connect(database = "top_ten.db")
# Get a cursor on the database. This allows you to execute SQL
top_ten = connection.cursor()
top_ten.execute('INSERT INTO Top_Ten VALUES(?,?)', [range(1,11),SMH_LADDER[:10]],)
# Commit the changes to the database
connection.commit()
# Close the cursor.
top_ten.close()
# Close the database connection.
connection.close()
我正在尝试将SMH_LADDER [:10]的内容作为字符串,并将范围(1,11)中的数字放入db,但无法通过此错误消息!
以下是SMH_LADDER [:10]列表的格式 ['String1','String2','String3','String4','String5','String6','String7','String8','String9','String10']
任何帮助将不胜感激!
答案 0 :(得分:1)
你不能只插入两个这样的列表。您需要创建一系列INSERT语句,从每个列表中插入一对,一次一对。您可以使用zip
创建对,然后使用executemany
进行插入。
values = zip(range(1,11), SMH_LADDER[:10])
top_ten.executemany('INSERT INTO Top_Ten VALUES(?,?)', values)