Python で MySQL に CSV データをロードする際のトラブルシューティング
CSV データを MySQL テーブルにロードしようとすると、コードはエラーなしで実行されますが、ターゲット テーブルは空のままです。この問題を解決するには、次の点を考慮してください。
問題:
import csv import MySQLdb mydb = MySQLdb.connect(host='localhost', user='root', passwd='', db='mydb') cursor = mydb.cursor() csv_data = csv.reader(file('students.csv')) for row in csv_data: cursor.execute('INSERT INTO testcsv(names, \ classes, mark )' \ 'VALUES("%s", "%s", "%s")', row) #close the connection to the database. cursor.close() print "Done"
解決策:
データがテーブルに正常に挿入された場合は、mydb.commit() メソッドを呼び出す必要があります。このメソッドは、変更をデータベースにコミットします。必要な変更を加えて修正されたコードは次のとおりです:
import csv import MySQLdb mydb = MySQLdb.connect(host='localhost', user='root', passwd='', db='mydb') cursor = mydb.cursor() csv_data = csv.reader(file('students.csv')) for row in csv_data: cursor.execute('INSERT INTO testcsv(names, \ classes, mark )' \ 'VALUES("%s", "%s", "%s")', row) # Commit the data to the database. mydb.commit() #close the connection to the database. cursor.close() print "Done"
以上がエラーがないにもかかわらず、Python MySQL CSV データのロードが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。