我正在编写一个脚本来解析 csv 文件并为 MySQL 表生成输入。
我通过 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 批量导入的原因。)
在此先感谢您的帮助!