Python将数据库写入csv

标签 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 中的每个键值周围添加额外的引号。

即,如果我的专栏有这个值: {“键”:“值”}

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/

相关文章:

sql - 带有 SELECT 语句的 MySQL 触发器

javascript - 提取并格式化 JSON 字符串中的值

php - 将json数据从python发送到php

python - 使用 flow_from_directory 进行多类和可变尺寸图像分类

python - Tweepy 不将重复的推文存储到数据库中

python - 剥离逗号和句号

php - 无法创建表

python - 为多个根目录调用 os.walk?

php - PDO、mysql、utf8(阿拉伯文本)在 php 中不显示

python - 在 bash 脚本中使用 python 函数 - 解析 JSON