繁体   English   中英

将 json 转换为 csv 以获得类似的键

[英]Convert json to csv for similar keys

我有一个personID并且那个人可以有多个fileID

我需要将personID以及多个fileID写入 csv 文件。 请注意,列表可能很长。

我得到的 json 响应看起来像这样

[{'ID': 94263, 'Name': 'Police Check Certificate', 'Ref': '304189', 'ExpiryDate': '2021-07-25'}, {'ID': 94264, 'Name': 'Public Liability - Cert of Currency', 'Ref': 'CA-IS-001-3DWINDOWS', 'ExpiryDate': '2020-07-17'}, {'ID': 94265, 'Name': 'Workcover Cert of Currency', 'Ref': '12824546', 'ExpiryDate': '2020-06-30'}]

我需要将此 json 响应转换为带有 id 的 csv; 类似于下面附加的图像。 在此处输入图片说明

关于我如何做到这一点的任何想法?

谢谢

首先,您应该尝试将 json 对象转换为 dict 列表。 然后,您可以将列表转换为数据框和 csv。

import pandas as pd 
list_of_dict = [{'ID': 94263, 'Name': 'Police Check Certificate', 'Ref': '304189', 'ExpiryDate': '2021-07-25'}, {'ID': 94264, 'Name': 'Public Liability - Cert of Currency', 'Ref': 'CA-IS-001-3DWINDOWS', 'ExpiryDate': '2020-07-17'}, {'ID': 94265, 'Name': 'Workcover Cert of Currency', 'Ref': '12824546', 'ExpiryDate': '2020-06-30'}
df = pd.DataFrame(list_of_dict)
df["contractorID"] = 447
df.to_csv("json.csv")

7

如果你安装了 Python 和 Pandas,你可以使用 Pandas 将 json 文件导出到 csv。

import pandas as pd
pd.read_json("yourfile.json").to_csv("output.csv")

如果你没有安装 Pandas,你可以使用以下命令安装它:

$ pip install pandas

一种选择是使用 ,如果您还没有访问它,它很容易安装。 但是,jq 期望其输入是有效的 JSON,因此您需要将示例中显示的准 JSON 转换为有效的 JSON。 有很多方法可以做到这一点,但一个简单的选择是使用命令行程序,例如

获得 JSON 后,您可以按照以下几行操作:

  • 如果所有密钥都已按要求的顺序排列:

    jq -r '.[] | [447] + [.[]] | @csv'

  • 除此以外:

    jq -r '.[] | [447, .ID, .Name, .Ref, .ExpiryDate] | @csv'

您可以将 JSON 通过管道传输到 jq(例如来自 hjson),或者在命令行中提供文件名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM