【发布时间】:2021-06-20 12:28:06
【问题描述】:
对于我的大学项目,我必须使用 API 从 github 收集一些数据。我将 api 调用的结果保存到 json 文件中,然后我必须将 json 文件转换为 csv 文件。
我使用以下代码将 json 文件转换为 csv:
with open ("data.json", "r") as f:
data = json.load(f)
with open('data.csv', 'w') as f:
fieldnames = data[0].keys()
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
for res in range(len(data)):
writer.writerow(data[res])
我的问题是在 json 文件中我有一些键/值对,如下所示:
"title" : "Hello \n World"
我认为“\n”被视为换行符,因为它会拆分我的 csv 文件的行。如何解决这个问题?无论如何让我的代码忽略“\n”?
【问题讨论】:
-
以下是一些为反斜杠特殊字符添加转义的提示:stackoverflow.com/questions/18935754/…
-
csv模块应该正确处理这个问题。 您正在寻找的输出是什么?有什么问题? -
您是否真的尝试过并检查您的输出以查看确切的行为?
-
如果整个 json 文件中没有“\ n”,我的将 JSON 转换为 CSV 的代码可以正常工作。问题是,例如,如果我有一个包含 2 个对象的 json 文件,则 csv 文件总共必须有 3 行(标题为 1,对象为 2)。如果在 json 文件中我有“\ n”,这将在“\ n”处划分 csv 文件中的行,从而在输出中获得 csv 中不代表对象数量的行数,因为对象包含“\n”的会分成两行
-
我添加了两个示例图像,向您展示我得到的输出和我想要得到的输出