我正在从 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 中的每个键值周围添加额外的引号。
即,如果我的专栏有这个值:
{“键”:“值”}
output.csv 文件有:
"{""key"": ""value""}"
我想要的是:
"{\"key\":\"value\"}"
我如何实现这一点?
(我必须在 ruby 应用程序中再次读取此文件并重新创建 json。有了这些额外的引号,我不确定该如何处理!)
最佳答案
要指定输出的格式,您需要传递正确的 formatting parameters在创建作家时,或创建您自己的方言并使用它。
在您的情况下,您可能需要这样的东西:
csv_writer = csv.writer(csv_file,
doublequote=False,
escapechar='\\',
quoting=csv.QUOTE_NONNUMERIC)
这在覆盖提供的参数时使用默认 (excel
) 方言。
关于Python将数据库写入csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34402469/