我有一个存储在cursor.rows中的行的结果集,这些行是从pyodbc.cursor.execute命令返回的。解压缩这些数据并将其放入逗号分隔字符串列表(或解压缩到自定义对象)的最快方法是什么?
目前我正在做以下事情:
cursor.execute(query_str)
f = open(out_file, 'w')
for row in cursor:
f.write(','.join([str(s) for s in row]))
f.write('\n')
每行需要130毫秒,这看起来像是一个非常昂贵的操作。我怎样才能加快速度呢?
答案 0 :(得分:13)
我使用csv
模块:
import csv
cursor.execute(query_str)
with open(out_file, 'w') as f:
csv.writer(f, quoting=csv.QUOTE_NONE).writerows(cursor)
请注意,如果您csv.QUOTE_NONE
,如果数据字段中有逗号,则会引发csv.Error
。理智的方式至少是csv.QUOTE_MINIMAL
。