gpt4 book ai didi

python - 在mysql python中插入多个插入的csv文件

转载 作者:行者123 更新时间:2023-11-29 19:11:22 26 4
gpt4 key购买 nike

我有一百万条记录的 CSV 文件,我正在使用单行插入,这需要 22 分钟如果我使用 Load data infile 需要 60 秒(但出于安全目的我不能使用它)另一个选项是多次插入或执行多次我很困惑如何使用多次插入,使用 for 循环执行多次。我想要一个计数器一次检查 100 行并使用多次插入加载到数据库中,然后再次检查 100 行并插入直到文件末尾提前致谢

#!/usr/bin/env python  
import csv
import MySQLdb
import pysftp
import smtplib

#connection to
conn = MySQLdb.connect(host="xxxxx", # The Host
user="file_auto_proc", # username
passwd="Pxx@xxx!", # password
db="xxxxx") # name of the data base

x = conn.cursor()
try:
csv_data = csv.reader(file('Disc.csv'))
for row in csv_data:

x.execute("INSERT INTO fp_feed_stg (col1,col2) VALUES(%s, %s)", row)
conn.commit()


except Exception, e:
print repr(e)
print("Not inserted")



conn.close()

最佳答案

我正在检查行计数并使用 ciel 除以 100 并将在 for 循环中指定范围(我没有在此代码中显示此条件)

#!/usr/bin/env python  
import csv
import MySQLdb
import pysftp
import smtplib
import itertools

#connection to
conn = MySQLdb.connect(host="xxx.xx.xxxxx.com", # The Host
user="xxxx", # username
passwd="P@xxx!", # password
db="xxxx") # name of the data base

x = conn.cursor()


csv_data = csv.reader(file('Disc1.csv'))
a=[]
i=0
k=0

for i in range(0,200):
for row in itertools.islice(csv_data, k, k+100):
a.append(row)
print row
print k
print k

sql="INSERT INTO fp_stg (col1,col2,col3,col4,col5,col6) VALUES(%s, %s, %s,%s, %s, %s)"
number_of_rows = x.executemany(sql, a)
a=[]
conn.commit()

#print i

关于python - 在mysql python中插入多个插入的csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43052347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com