[英]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 ,如果您还没有访问它,它很容易安装。 但是,jq 期望其输入是有效的 JSON,因此您需要将示例中显示的准 JSON 转换为有效的 JSON。 有很多方法可以做到这一点,但一个简单的选择是使用命令行程序,例如hjson 。
获得 JSON 后,您可以按照以下几行操作:
如果所有密钥都已按要求的顺序排列:
jq -r '.[] | [447] + [.[]] | @csv'
除此以外:
jq -r '.[] | [447, .ID, .Name, .Ref, .ExpiryDate] | @csv'
您可以将 JSON 通过管道传输到 jq(例如来自 hjson),或者在命令行中提供文件名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.