数据库
首页 > 数据库> > 如何在不将格式化为列表的情况下将sqlite导出到Python中的CSV?

如何在不将格式化为列表的情况下将sqlite导出到Python中的CSV?

作者:互联网

这是我目前拥有的:

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?谢谢,

解决方法:

你目前正在做的是打印出一个元组的python字符串表示,即str(row)的返回值.这包括引号和’你和括号等等.

相反,您希望为CSV文件正确格式化数据.好吧,试试csv module.它知道如何格式化CSV文件的东西,不足为奇.

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

标签:export-to-csv,python,sqlite,csv
来源: https://codeday.me/bug/20190928/1827945.html