当我尝试运行我的python脚本时,我总是遇到这个错误:
c.execute(“INSERT INTO test(word)VALUES(?)”,(word)) sqlite3.ProgrammingError:提供的绑定数量不正确。该 当前语句使用1,并且提供了4个。
知道这是什么问题吗?
import itertools, time, sqlite3
def main():
try:
print ("Still running, please wait...")
start_time = time.time()
con = sqlite3.connect("dictionary.db")
c = con.cursor()
c.execute("CREATE TABLE test (string char(10))")
for word in itertools.imap(''.join, itertools.product('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@&#!*', repeat=4)):
c.execute("INSERT INTO test (word) VALUES (?)", (word))
con.commit()
finally:
print ("Done! Check the txt file!\n")
end_time = time.time()
print "Processing time was: ", end_time - start_time
if __name__ == "__main__": main()
答案 0 :(得分:3)
更改
c.execute("INSERT INTO test (word) VALUES (?)", (word))
向
c.execute("INSERT INTO test (word) VALUES (?)", (word,))
说明:
(word)
被评估为word
,这是您案例中的字符串。 (word,)
被评估为单元素元组,这是SQLite期望的。
(Sqlite期望一个元组的元素与语句中的问号一样多。)