【发布时间】:2017-04-14 10:53:08
【问题描述】:
自从大学时代以来,我对 sql 和 python 已经很生疏了。
我想知道如何逐行读取查询结果而不是fetchall?
这是我当前的测试代码:
#!/usr/bin/python
import time
import csv
import mysql.connector
start_time = time.time()
cnx = mysql.connector.connect(user='user', password='1234',
host='10.0.10.100',
database='serverDB')
try:
cursor = cnx.cursor()
cursor.execute("select * from serverDB.task")
result = cursor.fetchall()
with open("query.csv", "wb") as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow([i[0] for i in cursor.description]) # write headers
csv_writer.writerows(result)
for x, row in enumerate(result):
print x
print row
#print result
finally:
cnx.close()
print "there are ", numrows, "rows"
print("--- %s seconds ---" % (time.time() - start_time))
【问题讨论】:
-
为什么要逐行读取查询结果?如果在使用前需要对每一行进行一些计算,可以直接读入
list,这样就可以对每一行进行操作了。 -
@Acepcs erm 说我有 1.5 亿条记录,列表如何处理大量记录?
-
@ling7334 过滤后