sqlite3.ProgrammingError:提供的绑定数量不正确

时间:2013-10-20 02:29:34

标签: python python-2.7 sqlite

你能告诉我代码中的错误吗?

我试图搜索这个特例并找不到答案。我也尝试使用official docs on sqlite3中的示例,但无法使其工作。基本上,我在inc_data中有很多数据需要插入到sqlite3中。

import sqlite3

inc_data = [[u'Period Ending', u'Dec 31, 2012', u'Dec 31, 2011', u'Dec 31, 2010'],
            [u'Total Revenue\n', u'104,507,000\n', u'106,916,000\n', u'99,870,000\n'],
            ]


conn = sqlite3.connect("inc_data.db")
c = conn.cursor()
c.execute('''DROP TABLE inc_table''')

c.execute('''CREATE TABLE inc_table
             (item text, value1 text, value2 text, value3 text)''')

c.execute('INSERT INTO inc_table VALUES (?,?,?,?)', inc_data)

conn.commit()

conn.close()

错误消息:

c.execute('INSERT INTO inc_table VALUES (?,?,?,?)', inc_data)
sqlite3.OperationalError: no such table: inc_table
非常感谢你的帮助。

1 个答案:

答案 0 :(得分:3)

你传递了两个项目;每个参数列表。

使用c.executemany()(确实需要一系列序列)或循环inc_data来为c.execute() 提供一组绑定值:

# insert multiple rows; one for each entry in `inc_data`
c.executemany('INSERT INTO inc_table VALUES (?,?,?,?)', inc_data)

# or loop
for bind_values in inc_data:
    c.execute('INSERT INTO inc_table VALUES (?,?,?,?)', bind_values)
相关问题