0

Pythonの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.

1つの疑問符を削除して再度実行しようとすると、エラーは次のようになります。

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

誰かがここで何が起こっているのか、そして解決策があれば私に説明してもらえますか...
Thx。

4

2 に答える 2

1

まず、の価値とrow、アイテムの数を確認します。

 print row, len(row)

次に、完全なinsertsqlステートメントを試して使用します。

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

何が起こるか見てみましょう。これで問題が解決するか、少なくとも何が起こっているのかを理解できるはずです。

于 2011-06-20T12:27:28.167 に答える
0

あなたは6つの列(引数)があると言っていますが、あなたはそれに1つの引数しか与えていません。これが、5列が欠落していることを示している理由です。

于 2011-06-20T12:29:48.337 に答える