Как бы вы создали строку с разделителями-запятыми из строки результатов pyobbc?
У меня есть набор результатов, хранящихся в 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 мс в строке, что кажется смешной дорогостоящей операцией. Как я могу ускорить это?
Ответы
Ответ 1
Я бы использовал модуль 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
a csv.Error
подняты, если в поле данных есть запятая. Разумным способом было бы csv.QUOTE_MINIMAL
по крайней мере.