Подтвердить что ты не робот

Как экспортировать sqlite в CSV в Python без форматирования в виде списка?

Вот что я сейчас имею:

conn = sqlite3.connect(dbfile)
conn.text_factory = str ## my current (failed) attempt to resolve this
cur = conn.cursor()
data = cur.execute("SELECT * FROM mytable")

f = open('output.csv', 'w')
print >> f, "Column1, Column2, Column3, Etc."
for row in data:
  print >> f, row
f.close()

Он создает CSV файл с выходом, который выглядит так:

Column1, Column2, Column3, Etc.
(1, u'2011-05-05 23:42:29',298776684,1448052234,463564768,-1130996322, None, u'2011-05-06 04:44:41')

Я не хочу, чтобы строки были в круглых скобках и не имели кавычек или "u" перед строками. Как мне заставить писать строки в csv без всего этого? Спасибо,

4b9b3361

Ответ 1

То, что вы сейчас делаете, это распечатать строковое представление python кортежа, т.е. возвращаемое значение str(row). Это включает в себя кавычки и "u" и "круглые скобки" и т.д.

Вместо этого вы хотите правильно отформатировать данные для файла CSV. Ну, попробуйте csv module. Он знает, как форматировать файлы для файлов CSV, что неудивительно.

with open('output.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerow(['Column 1', 'Column 2', ...])
    writer.writerows(data)