如何写一些东西到sqlite数据库?

时间:2013-12-30 21:03:06

标签: python sqlite

当我尝试运行我的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()

1 个答案:

答案 0 :(得分:3)

更改

c.execute("INSERT INTO test (word) VALUES (?)", (word))

c.execute("INSERT INTO test (word) VALUES (?)", (word,))

说明:

(word)被评估为word,这是您案例中的字符串。 (word,)被评估为单元素元组,这是SQLite期望的。

(Sqlite期望一个元组的元素与语句中的问号一样多。)