別の質問hereで提案されているように、csvファイルにロジックを適用する前とcsv readメソッドを使用する前に、next
メソッドを使用できます。
前回の回答の補足として挿入していないのは、申し訳ありませんが、十分なポイントがありません。
私は同じ問題を抱えています。私は以下の方法で問題を解決しました。私にとって、多くを実行する正しい方法は、conn
ではなく、cursor
オブジェクトであることに注意してください。
conn = pg8000.connect(user='username', password='password', host='host', port=5432, database='database name')
cursor = conn.cursor()
command = "INSERT INTO public.salesforce_accounts (field1, field2, field3, field4, field5, field6) VALUES (%s, %s, %s, %s, %s, %s)"
with open('test.csv', 'r') as file:
next(file)
data = list(csv.reader(file))
cursor.executemany(command, data)
これは正常に動作しますが、次のエラースロー: 'ProgrammingError:(u'ERROR 'u'ERROR'、u'42601' は、u'INSERTが表現よりも多くのターゲット列を持っている、u'79' を、u'analyze.c '、u'884'、u'transformInsertRow ') '、これで私を助けることができますか?列の1つはautoincrementであり、insert文で指定されていません。 – codeninja
これはSQLエラーです。まず、SQLを動作させてから、 'executemany'にプラグインしてください。 – cwallenpoole
固定!しかし、処理には時間がかかります。挿入する代わりに、コピーコマンドを使用することはできませんか? – codeninja