私は、実践のためにPythonを使ってmysqlにcsvファイルをインポートしようとしています。私は正しいライブラリをダウンロードしたと信じています。コードを実行するたびにエラーが発生します。MysqlにCSVをインポートするPython 3.x
mysql.connector.errors.ProgrammingError:1064(42000):SQL構文にエラーがあります。 '%s、%s、%s、%s、%s、%s、%s、%s、%s、%s'の近くで使用する正しい構文については、ご使用のMySQLサーバのバージョンに対応するマニュアルを参照してください。 1行目
これがうまくいかず、すべての答えが、python 3.xをサポートしていないmysqldbを使用しているように思えます。
マイコード:
import mysql.connector
import pandas as pd
cnx = mysql.connector.connect(user='root', password='comeonin', host='127.0.0.1', database='boxresults')
cursor = cnx.cursor()
csv_data = pd.read_csv('Betting/boxresults3.csv')
for row in csv_data:
cursor.execute("INSERT INTO table1(Week, Day, Date, Winner, Loser, PtsW, PtsL, YdsW, TOW, YdsL, TOL) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s, %s)", row)
cursor.close()
cnx.close()
新しいコード:
import mysql.connector
import pandas as pd
cnx = mysql.connector.connect(user='root', password='comeonin', host='127.0.0.1', database='boxresults')
cursor = cnx.cursor()
csv_data = pd.read_csv('Betting/boxresults3.csv')
for row in csv_data.iterrows():
list = row[1].values
cursor.execute("INSERT INTO table1(Week, Day, Date, Winner, Loser, PtsW, PtsL, YdsW, TOW, YdsL, TOL) VALUES('%d','%s','%s','%s','%s','%d','%d','%d','%d','%d', '%d')" % tuple(list))
cursor.close()
cnx.close()
印刷 '行あなたが何をしているのかを見てください。 'execute()'は11要素のタプルが必要です。 – furas
私は11行の列名を取得する行を印刷するときに、私はそれがタプルではないと思う。 1で1をプリントしています。 – Evy555
パンダのオーバーヘッドはなぜですか? CSVモジュールはうまくいくでしょう。また、使用している場合、pandasは[to_sql](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html)を1回の呼び出しで一括して追加すると考えています。それでもなお、MySQLには、テキストファイル用の[LOAD DATA INFILE](http://dev.mysql.com/doc/refman/5.7/en/load-data.html)コマンドがあります。 – Parfait