在 Python 中将 CSV 数据加载到 MySQL
此代码片段尝试将 CSV 数据加载到 MySQL 数据库表中。但是,用户遇到了一个问题,即没有任何内容插入到表中。
代码使用 csv 和 MySQLdb 模块读取 CSV 文件并将其数据插入名为 testcsv 的 MySQL 表中。 CSV 文件预计包含三列:名称、类和标记。
执行代码后,用户不会报告任何错误消息,但表仍为空。为了解决这个问题,代码缺少一个关键步骤:将更改提交到数据库。
在 MySQL 中,对数据库所做的更改(例如插入新记录)在提交之前不是永久的。默认情况下,MySQL 以自动提交模式运行,这意味着每个语句都会自动提交。但是,在某些情况下,例如处理事务时,需要显式提交更改。
在提供的代码中,插入每行数据后缺少以下行:
mydb.commit()
添加此行将确保每个 INSERT 语句所做的更改都提交到数据库。因此,数据将成功插入到 testcsv 表中。更新后的代码应如下所示:
import csv import MySQLdb mydb = MySQLdb.connect(host='localhost', user='root', passwd='', db='mydb') cursor = mydb.cursor() csv_data = csv.reader(file('students.csv')) for row in csv_data: cursor.execute('INSERT INTO testcsv(names, \ classes, mark )' \ 'VALUES("%s", "%s", "%s")', row) mydb.commit() #close the connection to the database. cursor.close() print "Done"
通过在每次插入操作后提交更改,用户可以确保数据永久存储在 MySQL 表中。
以上是为什么我的 Python 代码没有将 CSV 数据插入到我的 MySQL 数据库中?的详细内容。更多信息请关注PHP中文网其他相关文章!