使用Python将一个大型csv文件插入到MySQL表中。
使用Python将一个大型csv文件插入到MySQL表中。
我有一个工作流程,需要将一个包含500k行的CSV文件导入到MySQL表中。我有一个看起来工作正常的Python脚本,但是当我选择表时,没有任何数据保存到实际表中。我先删除并重新创建表头,然后尝试批量插入CSV文件,但是数据似乎没有进入。在运行时,Python控制台没有报告任何错误。
脚本运行大约需要2分钟,这让我觉得它正在做一些事情,但是当我从表中选择*时,除了列头之外,我得不到任何东西。
我的脚本大致如下:
import pandas as pd import mysql.connector dataframe.to_csv('import-data.csv', header=False, index=False) DB_NAME = 'SCHEMA1' TABLES = {} TABLES['TableName'] = ( "CREATE TABLE `TableName` (" "`x_1` varchar(10) NOT NULL," "`x_2` varchar(20) NOT NULL," "PRIMARY KEY (`x_1`)" ") ENGINE = InnoDB") load = """ LOAD DATA LOCAL INFILE 'import-data.csv' INTO TABLE SCHEMA1.TableName FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' """ conn = mysql.connector.connect( host=writer_host, port=port, user=username, password=password, database=username, ssl_ca=cert_path ) cursor = conn.cursor(buffered=True) cursor.execute("DROP TABLE IF EXISTS SCHEMA1.TableName") cursor.execute(TABLES['TableName']) cursor.execute(load) cursor.close() conn.close()
使用Python将大型CSV文件插入MySQL表格时出现了问题。问题的原因是在执行命令后没有进行提交操作。解决方法是在关闭游标和连接之前添加conn.commit()
进行提交操作。
在使用Python将大型CSV文件插入MySQL表格时,用户遇到了一个问题:执行命令后没有进行提交操作。问题的原因是没有在执行命令后进行提交操作,导致数据没有被正确插入到MySQL表格中。
解决这个问题的方法是在关闭游标和连接之前添加conn.commit()
进行提交操作。这样可以确保数据被正确地插入到MySQL表格中。
以下是用户的解决方案:
cursor.commit()
用户在执行命令后添加了cursor.commit()
进行提交操作。这样,当关闭游标和连接时,数据将被正确地插入到MySQL表格中。
用户表示,添加conn.commit()
之后,问题得到了解决,代码按预期工作。
当使用Python将大型CSV文件插入MySQL表格时,需要记得在执行命令后进行提交操作,以确保数据被正确地插入到MySQL表格中。可以通过添加conn.commit()
进行提交操作。