【问题标题】:Unable to import CSV data into MySQL database with Python无法使用 Python 将 CSV 数据导入 MySQL 数据库
【发布时间】: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)' 附近使用正确的语法

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

【问题讨论】:

    标签: python mysql csv import


    【解决方案1】:

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

    cursor.execute(sql, row)
    

    cursor.execute(sql, tuple(row))
    

    【讨论】:

      【解决方案2】:

      感谢您的回答。并为这个迟到的回复道歉。 在此期间,该问题已得到解决。 它与我的 CSV 文件有关。那到底是什么,我还不知道。不过,我可以继续导入。

      再次感谢,祝您有美好的一天!

      最好的问候, 删除

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-04
        • 2013-02-19
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 2020-08-06
        • 2020-05-06
        相关资源
        最近更新 更多