SQLite Python 插入 - 绑定数目不正确

2 投票
3 回答
12502 浏览
提问于 2025-04-16 09:45

抱歉如果这有点重复,我花了很多时间试图找到答案,但提供的技巧似乎都没用。我想用Python把一份股票数据的csv文件(来自雅虎财经)读入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个。

我哪里出错了呢?

3 个回答

0

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

2

你有一个多余的?,或者元组里的项目数量不够。

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]

撰写回答