プレースホルダーの数がテーブルとCSVファイル形式に一致するように、クエリを動的に作成することを検討してください。次に、十分な?
を入力したことを確認するのではなく、テーブルとCSVファイルが正しいことを確認するだけです。 コード内のプレースホルダー。
次の例では、
を想定しています。- CSVファイルの最初の行に列名が含まれています
- 接続はすでに構築されています
- ファイル名は
test.csv
です - テーブル名は
MyTable
です - Python 3
...
with open ('test.csv', 'r') as f:
reader = csv.reader(f)
columns = next(reader)
query = 'insert into MyTable({0}) values ({1})'
query = query.format(','.join(columns), ','.join('?' * len(columns)))
cursor = connection.cursor()
for data in reader:
cursor.execute(query, data)
cursor.commit()
列名がファイルに含まれていない場合:
...
with open ('test.csv', 'r') as f:
reader = csv.reader(f)
data = next(reader)
query = 'insert into MyTable values ({0})'
query = query.format(','.join('?' * len(data)))
cursor = connection.cursor()
cursor.execute(query, data)
for data in reader:
cursor.execute(query, data)
cursor.commit()