Python将数据库写入csv

时间:2015-12-21 18:53:53

标签: python mysql json csv

我从MySQL数据库中获取数据并写入CSV文件。 这看起来像这样:

with open("output.csv", "ab+") as csv_file:
        csv_writer = csv.writer(csv_file)
        csv_writer.writerows(db_cursor)

这适用于普通列。但是,我有一个LONGTEXT类型的列,其中包含JSON数据。

csv_writer在创建CSV文件时在JSON中的每个键值周围添加额外的引号。

即,如果我的列有此值: {"key":"value"}

output.csv文件具有: "{""key"" : ""value""}"

我想要的是: "{\"key\" : \"value\"}"

我如何实现这一目标?

(我必须在ruby应用程序中再次阅读此文件并重新创建json。使用这些额外的引号,我不知道如何处理它!)

1 个答案:

答案 0 :(得分:4)

要指定输出的格式,您需要在创建编写器时传递正确的formatting parameters,或创建自己的方言并使用它。

在你的情况下,你可能想要这样的东西:

csv_writer = csv.writer(csv_file,
                        doublequote=False,
                        escapechar='\\',
                        quoting=csv.QUOTE_NONNUMERIC)

这会在覆盖提供的参数时使用默认(excel)方言。