2011-06-20 93 views
0

我想在Excel中使用win32com模塊將Excel錶轉換爲sqlite3數據庫。我的Excel工作表有6列,所以我的我的Python代碼的部分是:提供的綁定數量和提供的值的錯誤

for row in exceldata: 
     c.execute('INSERT INTO exceltable1 VALUES(?,?,?,?,?,?)',row) 
conn.commit() 

但是Python給了我下面的錯誤:

c.execute('INSERT INTO exceltable VALUES(?,?,?,?,?,?)',row) 
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 6, and there are 5 supplied. 

如果我嘗試刪除一個問號,並運行它再次,錯誤現在變成:

c.execute('INSERT INTO exceltable1 VALUES(?,?,?,?,?)',row) 
OperationalError: table exceltable1 has 6 columns but 5 values were supplied 

任何人都可以請whats發生在這裏我解釋一下,如果有任何解決方案...
THX。

回答

1

首先,要確保什麼row的價值是,它有多少項目有:

print row, len(row) 

然後嘗試並使用完整的插入SQL語句:

insert into table (col1, col2, col3, ...) values (?, ?,? ...) 

看看怎麼了。這應該解決你的問題,或者至少讓你明白髮生了什麼。

+0

thx很多!這有助於很多:) – Urban

+0

非常感謝,這有所幫助。 – ratna

0

你說的是你有6列(參數),但你只給它1個參數。這就是爲什麼它告訴你你錯過了5列。

相關問題