1

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

我试图搜索这种特殊情况,但找不到答案。我也尝试使用官方文档中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

非常感谢您的帮助。

4

1 回答 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)
于 2013-10-20T02:31:50.967 回答