【发布时间】:2018-11-27 23:21:05
【问题描述】:
我正在尝试将大约 2000 个 csv 文件中的每一行插入到一个 mysql 表中。使用以下代码,我仅从一个文件中插入了一行。如何自动化代码以便为每个文件插入所有行?插入只需执行一次。
import pymysql.cursors
connection = pymysql.connect(host='localhost',
user='s',
password='n9',
db='si',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
sql = "INSERT INTO `TrainsS` (`No.`, `Name`,`Zone`,`From`,`Delay`,`ETA`,`Location`,`To`) VALUES (%s,%s,%s,%s,%s,%s,%s, %s)"
cursor.execute(sql, ('03', 'P Exp','SF','HWH', 'none','no arr today','n/a','ND'))
connection.commit()
finally:
connection.close()
【问题讨论】:
-
如果是一次性活动,为什么不尝试使用
load in file选项进行批量插入。 -
我试过
BULK INSERT TrainsS FROM '\home\www\T\ins\train2018.csv' WITH (FIELDTERMINATOR = '","');,但它给出了一个错误 -
所以是一次性活动吗?如果是这样,您可能希望使用其他信息和错误来修改您的问题,应该有人可以帮助您。
标签: mysql python-3.x csv pymysql