【问题标题】:SQLite Python Insert - Incorrect Number of Bindings SuppliedSQLite Python 插入 - 提供的绑定数量不正确
【发布时间】:2011-06-06 23:20:24
【问题描述】:

抱歉,如果这是多余的,我花了很多时间试图找到答案,但提供的技巧似乎没有任何作用。我正在尝试使用 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 个。

我哪里错了?

【问题讨论】:

    标签: python sqlite


    【解决方案1】:

    您的?s 太多了。或者元组中的一项太少。

    【讨论】:

      【解决方案2】:

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

      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]
      

      【讨论】:

      • 非常感谢!那是我的粗心大意,很抱歉占用您的时间,再次感谢您的帮助!
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-02-09
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        • 1970-01-01
        • 2012-04-16
        • 2015-12-06
        • 2013-10-28
        • 2021-06-28
        相关资源
        最近更新 更多