2011-06-20 10 views
0

私は、Excelシートをsqlite3 dbに変換しようとしています。これは、pythonでwin32comモジュールを使用しています。私の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. 

私は1つ疑問符を削除し、それを実行しようとした場合

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

は誰もがここで起こっていただきました!私に説明してもらえますし、任意のソリューション...
Thxをがある場合:もう一度、エラーが今になります。すべての

答えて

1

まず、rowの値が何であるかを確認し、それが持っているどのように多くの項目:次に

print row, len(row) 

試してみて、完全に挿入SQLステートメントを使用します。

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

をしてご覧ください何が起こるのですか。これはあなたの問題を解決するか、少なくとも起こっていることを理解させるべきです。

+0

thxたくさん!これは多くの助けになりました:) – Urban

+0

ありがとう、これは助けた。 – ratna

0

6つの列(引数)がありますが、引数は1つだけです。これが、あなたが5カラムを欠いていることを伝える理由です。

関連する問題