首页 文章

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

提问于
浏览
1

你能告诉我我在代码中做错了什么吗?

我've tried to search for this particular case and could not find the answer. I'也尝试使用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 回答

  • 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)
    

相关问题