Я работаю над скриптом для синтаксического анализа файла csv и создания ввода для таблицы MySQL.Python MySQL INSERT from csv
Я импортирую данные через csv.reader, поэтому каждая строка представляет собой список строк. Я хочу перебирать строки и вносить разные записи в базу данных.
я могу получить следующий тест на работу:
sql = "INSERT INTO `testSmall` (`idtestSmall`, `column1`, `column2`) VALUES (1, 'entry1', 'entry2');"
cursor.execute (sql)
Так что мои связи работает SQL и принцип синтаксиса SQL в порядке. Я также могу получить доступ к записям, которые я хочу разместить там, и они верны и типа данных, которые я ожидаю. Однако, я, кажется, не быть в состоянии использовать тот же синтаксис SQL с переменными внутри итераций:
allData = csv.reader(open('TestTable.csv', 'rb'), delimiter=',', quotechar='|')
for row in allData:
sql = "INSERT INTO `testSmall` (`idtestSmall`, `column1`, `column2`) VALUES (row[0], row[1], row[2]);"
cursor.execute (sql)
Это порождает ошибки Синтаксис:
Error 1064: You have an error in your SQL syntax; check the manual that corresponds to our MySQL server version for the right syntax to use near '[0], row[1], row[2])' at line 1
Но типы данных являются правильными и синтаксис SQL такой же, как в рабочем примере ...
Может ли кто-нибудь сказать мне, что я делаю неправильно и как заставить его работать?
(В конце концов, я хочу, чтобы не только вставить чистые записи CSV, но и полученных значения, поэтому я не только с помощью MySQL массового импорта.)
Заранее спасибо за вашу помощь! Lastalda
Ах! Спасибо, это имеет смысл! – Lastalda
Отличный кусок кода! Почему я получаю «Не все аргументы, преобразованные во время форматирования строк»? :( – Pitto