我有一个列表列表,每个嵌套的列表都有不同的长度,最小长度为零,最大长度未确定。我试图将这些列表中的每一个都插入到SQLite3表中的单个列中,但收到错误消息“提供的绑定数不正确”。如何将这些数据放入SQLite3?
# LIST OF LISTS TO INSERT INTO DATABASE
list_of_scene_char_lists = [['HARPER', 'RORY', 'THOMAS'], ['AUGUST', 'THOMAS']]
# FUNCTION: CREATE THE CHARACTERS TABLE # DO ONLY ONCE
def create_characters_table():
conn = sqlite3.connect(project_db)
c = conn.cursor()
c.execute("""CREATE TABLE characters (
scene_characters text
)""")
conn.commit()
conn.close()
#create_characters_table() # DO ONLY ONCE
# FUNCTION: INSERT CHARACTERS INTO CHARACTERS TABLE # DO ONLY ONCE
def auto_characters(list_of_scene_char_lists):
conn = sqlite3.connect(project_db)
c = conn.cursor()
c.executemany("INSERT INTO characters VALUES (?)", (list_of_scene_char_lists))
conn.commit()
conn.close()
auto_characters(list_of_scene_char_lists) # DO ONLY ONCE
# ERROR
c.executemany("INSERT INTO characters VALUES (?)", (list_of_scene_char_lists))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 3 supplied.
1条答案
按热度按时间aoyhnmkz1#
您的子列表正在被解包,因此出现了错误。由于Sqlite没有“list”类型,您最好的选择可能是将子列表转换为逗号分隔的字符串: