2013-10-20 86 views
1

您能告诉我我在代码中做错了什么吗?sqlite3.ProgrammingError:提供的绑定数量不正确

我试图寻找这个特殊情况,并找不到答案。我也尝试过使用他们的例子“http://docs.python.org/2/library/sqlite3.html”,但无法使其工作。基本上,我有很多inc_data中的数据需要插入到sqlite3中。

进口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 

许多感谢您的帮助。

+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) 
+0

c.executemany完美工作。非常感谢您向我展示这两种方法。我非常感谢你的帮助。 – vt2424253

相关问题