【问题标题】:Python write database to csvPython将数据库写入csv
【发布时间】:2016-03-27 22:16:40
【问题描述】:

我正在从 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。有了这些额外的引号,我不知道该如何处理!)

【问题讨论】:

    标签: python mysql json csv


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 2013-09-20
      • 2018-06-25
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多