SQLite Python Вставка - Поставлено неверное количество привязок - PullRequest
2 голосов
/ 11 января 2011

извиняюсь, если это излишне, я потратил много времени, пытаясь найти ответ, но ни один из предоставленных трюков, казалось, ничего не делал.Я пытаюсь использовать Python для чтения в SQLite CSV-документ с данными о запасах (финансы Yahoo):

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.

Где я ошибаюсь?

Ответы [ 2 ]

4 голосов
/ 11 января 2011

Теперь, когда он переформатирован, я думаю, что проблема становится очевидной.

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 голосов
/ 11 января 2011

У вас слишком много ? с. Или один слишком мало предметов в кортеже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...