将json转换为csv以获取类似的密钥

时间:2019-08-02 02:27:04

标签: python json csv

我有一个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;如下图所示。enter image description here

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

谢谢

3 个答案:

答案 0 :(得分:1)

首先,您应该尝试将json对象转换为字典列表。 然后,您可以将列表转换为数据框和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")

答案 1 :(得分:0)

7

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

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

如果未安装Pandas,则可以使用以下命令进行安装:

$ pip install pandas

答案 2 :(得分:0)

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

拥有JSON后,您可以按照以下步骤进行操作:

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

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

  • 否则:

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

您可以将JSON传递到jq(例如从hjson中),也可以在命令行中提供文件名。