Я пытаюсь импортировать CSV-файл в mysql, используя python для практики. Я считаю, что я загрузил правильные библиотеки. Каждый раз, когда я запускаю свой код, я получаю ошибку:Импорт CSV в Mysql Python 3.x
mysql.connector.errors.ProgrammingError: 1064 (42000): У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '% s,% s,% s,% s,% s,% s,% s,% s,% s,% s)' at line 1
Я не могу понять, почему это не сработает, и все ответы, похоже, используют mysqldb, который не поддерживает python 3.x.
Мой код:
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 прекрасно справился бы. И если вы используете, панды рассмотрят его [to_sql] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html) для массового добавления в один вызов. Еще в MySQL есть команда [LOAD DATA INFILE] (http://dev.mysql.com/doc/refman/5.7/en/load-data.html) для текстовых файлов. – Parfait