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

问题描述 投票:2回答:3

抱歉,如果这是多余的,我花了很多时间试图找到答案,但是提供的所有技巧似乎都无济于事。我正在尝试使用Python将SQL的股票数据(雅虎财务)文档读入SQLite:

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。

我在哪里出错了?

python sqlite
3个回答
4
投票

现在重新格式化,我认为问题已经明显。

to_db有7个项目,而不是8个。因此,您试图仅用7个参数填写八个绑定。只是一个猜测,但也许应该是

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]

2
投票

您有太多?。或者元组中的项目太少。


0
投票

虽然发送查询参数使用列表而不是元组

© www.soinside.com 2019 - 2024. All rights reserved.