SQLite Python插入 - 提供的绑定数量不正确

时间:2011-01-11 05:27:54

标签: python sqlite

如果这是多余的,我会道歉,我花了很多时间试图找到答案,但所提供的技巧似乎都没有做任何事情。我正在尝试使用Python来读取SQLite的股票数据(雅虎财经)的csv文件:

Ticker  Open    High   Low    Close  Volume  AdjClose  
AA      1/5/11  16.34  16.59  16.11  16.56   48278700  16.56

我正在使用以下表彰:

to_db = [(i['Ticker'], i['Open'], i['High'], i['Low'],i['Close'], i['Volume'], i['AdjClose']) for i in dr]
c.executemany("insert into stock_test1 (Ticker, Date, Open, High, Low, Close, Volume, AdjClose) values ( ?, ?, ?, ?, ?, ?, ?, ?);", to_db)

我得到了:

sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用8,并且提供了7个。

我在哪里错了?

3 个答案:

答案 0 :(得分:4)

现在它已被重新格式化,我认为问题变得明显。

to_db有7个项目,而不是8个。所以你试图只用7个参数填写8个绑定。只是一个猜测,但也许它应该是

Ticker  Date    Open   High   Low    Close   Volume    AdjClose  
AA      1/5/11  16.34  16.59  16.11  16.56   48278700  16.56

会使to_db改变如下:

to_db = [(i['Ticker'], i['Date'], i['Open'], i['High'], i['Low'],i['Close'], i['Volume'], i['AdjClose']) for i in dr]

答案 1 :(得分:2)

你有一个?太多了。或者元组中的项目太少。

答案 2 :(得分:0)

在发送查询参数时使用列表而不是元组