当前位置: 首页 > 面试题库 >

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

尉迟招
2023-03-14
问题内容

这是我目前拥有的:

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)。其中包括引号,“ u”和括号等。

相反,您希望数据正确格式化为CSV文件。好吧,尝试csv模块。毫无疑问,它知道如何格式化CSV文件的格式。

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


 类似资料:
  • 问题内容: 我有个问题。我正在尝试将一些字符串转换为日期,但我不知道日期到达的格式。 这或许让他们或等。 如何将这些字符串转换为Date?我尝试了这个: 但是,当我打印出someDate时,它的打印方式是这样的:2019-08-05 12:42:48.638 CEST这意味着,但是当我运行以上代码时,日期对象现在变成了,至少可以这样说。 有什么想法可以正确格式化日期格式吗? 问题答案: 你不能!

  • 问题内容: 我有一个列表看起来像这样: 我想把它弄平 有没有使用numpy的轻量级功能来执行此操作? 问题答案: 如果没有numpy(),一种使用方式 是: 或者作为另一种Python方式,您可以使用 列表理解 : 另一个非常适合短列表的功能方法也可以在Python2和Python3中使用(不要将其用于长列表): 为了使其更快一点,您可以使用内置,而不是: 基准: 使用@Will答案的基准测试(对

  • 问题内容: 如果我用javadoc 编写,它不会出现,因为标签在格式化文本方面具有特殊功能。 如何在Javadoc中显示此字符? 问题答案: 您可以使用为 < 和为 > 。

  • 问题内容: 我有一个字符串,是这样的:。 我想将其转换为列表。我知道我可以使用eval(string)来获取列表,但是eval令我感到恐惧,因为它可能会造成灾难(并且因为我可以获取非列表作为有效输出)。还有另一种更安全的方式将此字符串转换为列表吗?我知道这是一个列表,所有不是列表的数据都是无效数据(应该检查和/或抛出错误)。 问题答案: 如果您坚持要这样做,可以使用ast.literal_eval

  • 问题内容: 我只是想输出一个先前创建的ArrayList来序列化它,以备将来存储。 但是当我这样做时,我收到运行时错误“ notSerialisableException:部门。 他们是序列化arrayList的一种特殊方法吗? 有人可以告诉我为什么我会收到此错误。 这是代码: 问题答案: 不是问题吗?你的对象是。 您需要在该对象中实现接口。

  • 在生成Excel文件时,是否可以在ColdFusion代码中指定此格式?