首页 >数据库 >mysql教程 >为什么我的 Python 代码没有将 CSV 数据插入到我的 MySQL 数据库中?

为什么我的 Python 代码没有将 CSV 数据插入到我的 MySQL 数据库中?

Patricia Arquette
Patricia Arquette原创
2024-11-29 05:27:12817浏览

Why Isn't My Python Code Inserting CSV Data into My MySQL Database?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn