python - 无法使用Python将CSV数据导入MySQL数据库

标签 python mysql csv import

我用下一段 Python 源代码将数据从 CSV 文件导入 MySql。 使用的安装版本是:MySql 5.7和Python2.7 此外,该表有 3 列。一个 ID 列(自动递增)和两个文本列:名字和姓氏。

问题似乎出在 SQL 语句周围。特别是“%s”位。

从字面上看,我已经用标点符号完成了所有操作,例如:“,”和“。例如's',“s”,(“s”)等。

我还搜索并使用了各种源代码片段。一切都失败了。甚至我都怀疑我的 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)”附近使用的正确语法

感谢您的任何提示、线索和/或解决方案!!

最佳答案

假设您正确读取 csv 文件,并且查询中需要相同的参数,请尝试替换此行

cursor.execute(sql, row)

cursor.execute(sql, tuple(row))

关于python - 无法使用Python将CSV数据导入MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56396102/

相关文章:

python - UsersConfig()函数中的ready()函数是什么?

php - 直接拒绝访问文件夹

MySql 导入卡住

php - 第 14 行给出的警告 : mysql_num_rows() expects parameter 1 to be resource, bool 值

javascript - JQuery 脚本中的 XOR 值

csv - 带有空 header 的 DatastaxBulk 加载程序问题

python - 包 'python-pybabel' 没有安装候选

python:如何在不使用命令提示符的情况下将参数传递给 eclipse 中的应用程序

python - db.session.commit 是否会更改 Flask-SQLAlchemy 中的应用程序上下文?

python - 如何使用Python将特定格式的文件从sftp复制到本地