我有一個Python列表類型的數據無法插入Python列表的數據到數據庫
我想插入這個名單到數據庫表 - 在一排這樣的
country = [('a', 3), ('b', 2), ('c', 1)]
所以我已經寫代碼:
import sqlite3
from collections import Counter
db = "test.db"
conn = sqlite3.connect(db)
c = conn.cursor()
c.execute("CREATE TABLE country_data (country TEXT)")
country = ['a', 'a', 'a', 'b', 'b', 'c']
c.execute("INSERT INTO country_data VALUES(?)", (str(list(Counter(country).items()))))
conn.commit()
但它給我的錯誤
Traceback (most recent call last):
File "try.py", line 19, in <module>
c.execute("INSERT INTO country_data VALUES(?)", (str(list(Counter(country).items()))))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 30 supplied.
我該如何解決這個問題?
嗯,我可以告訴你錯誤至少來自哪裏。由該表達式返回的字符串的長度是30.所以我猜它不期待這樣的字符串。不幸的是,我不太瞭解sqlite3庫以告訴你它需要什麼。 – user3030010
如果我刪除STR()和只寫 '名單(計數器(國家).items())' 錯誤是: 'sqlite3.ProgrammingError:提供的綁定數有誤。當前語句使用1,並且提供了3個.' –
您的表格由恰好一列組成。你希望如何在一列中存儲'('a',3)'?或者你的意思是你想要三行'a',兩行'b'和一行'c'? –