【发布时间】:2019-10-17 03:55:28
【问题描述】:
我用来将数据从 CSV 文件导入 MySql 的下一段 Python 源代码。 正在使用的安装版本有:MySql 5.7 和 Python2.7 此外,该表有 3 列。一个 ID 列(自动递增)和两个文本列:名字和姓氏。
这件事似乎与 SQL 语句有关。特别是“%s”位。
从字面上看,我所做的一切都使用标点符号,例如:“,”和 `。例如,“s”、“s”、(“s”)等。
我也搜索并使用了各种源代码sn-ps。这一切都失败了。甚至我也怀疑我的 CSV 文件的质量。但是,通过例如导入它MySql 工作台工作正常。 当我在源代码中添加一些简单的示例值时,我设法在 MySql 中获取数据。所以从技术上讲,一切似乎都很好。它只是解析失败......
请帮忙。很可能我忽略了一些简单的事情,但它让我彻底疯了......
import mysql.connector as mysql
import csv
db = mysql.connect(
host = "xxxx",
user = "xxxx",
passwd = "xxxx",
database = "abc"
)
cursor = db.cursor()
ifile = open('/tmp/import.csv', "rb")
read = csv.reader(ifile)
for row in ifile:
print row
sql = "INSERT INTO Names(Firstname, Lastname) VALUES(%s, %s)"
cursor.execute(sql, row)
db.commit()
print(cursor.rowcount, "record inserted")
我期望发生的是 CSV 中的数据被解析到 MySQL 中。 我收到的错误信息是:
mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '%s, %s, %s)' 附近使用正确的语法
感谢任何提示、线索和/或解决方案!
【问题讨论】: