プライマリキーとオートインクリメントでテーブルを作成します。Python - 自動インクリメントのプライマリキー値を持たないSqliteタプルを挿入
最初にオートインクリメントされるので、合計列数が1よりも少ないタプルを挿入します。
sql_data = tuple(b)
c.executemany('insert into race values(?,?,?,?,?,?,?)', b)
このエラーをどのようにして停止できますか? SQLite documentationから
sqlite3.OperationalError: table race has 8 columns but 7 values were supplied
プライマリキーフィールドにNULLを格納しようとすると(NULLが有効なプライマリキーではないため)、一部のデータベースが自動インクリメント値を生成すると思われるため、少し誤っているかもしれません。 – holdenweb
はい、それでもエラーです。 "python xml_race.py の値"(?、?、?、?、?、?、?) '' '、sql_dataの "xml_race.py"ファイルの78行目のトレースバック sqlite3.ProgrammingError:指定された数のバインディングが正しくありません。現在のステートメントは7を使用し、6が提供されます。 – sayth
にnullを追加しようとしました。そのエラーメッセージの意味は 'len(sql_data)!= 7'です - 確認するには' print'を使って確認できますか? – holdenweb