Python 非常嵌套的JSON,在dataframe中包含可选字段

Python 非常嵌套的JSON,在dataframe中包含可选字段,python,json,pandas,dataframe,dictionary,Python,Json,Pandas,Dataframe,Dictionary,我有一个具有以下结构的JSON。我想将一些数据提取到不同的列表中,以便能够将它们转换为数据帧 { "ratings": { "like": { "average": null, "counts": { "1": { "total": 0

我有一个具有以下结构的JSON。我想将一些数据提取到不同的列表中,以便能够将它们转换为数据帧

{
    "ratings": {
        "like": {
            "average": null,
            "counts": {
                "1": {
                    "total": 0,
                    "users": []
                }
            }
        }
    },
    "sharefile_vault_url": null,
    "last_event_on": "2021-02-03 00:00:01",
    ],
    "fields": [
        {
            "type": "text",
            "field_id": 130987800,
            "label": "Name and Surname",
            "values": [
                {
                    "value": "John Smith"
                }
            ],
        {
            "type": "category",
            "field_id": 139057651,
            "label": "Gender",
            "values": [
                {
                    "value": {
                        "status": "active",
                        "text": "Male",
                        "id": 1,
                        "color": "DCEBD8"
                    }
                }
            ],
        {
            "type": "category",
            "field_id": 151333010,
            "label": "Field of Studies",
            "values": [
                {
                    "value": {
                        "status": "active",
                        "text": "Languages",
                        "id": 3,
                        "color": "DCEBD8"
                    }
                }
            ],
       }
}
例如,我创建了一个列表

names = []
其中,如果“字段”列表中的“标签”是“姓名和姓氏”,则我附加
[“值”][0][“值”]
因此
名称现在包含“John Smith”。我对“Gender”标签执行完全相同的操作,并将值附加到列表
genders

上面的字典包含在一个字典列表中,因此我只需循环遍历该列表并提取如下相关字段:

names=[]
性别=[]
对于范围内的r(len(用户)):
对于范围内的i(len(用户[r].json()[“项]):
对于用户[r].json()[“项”][i][“字段”]中的字段:
如果字段[“标签”]=“姓名”:
name.append(字段[“值”][0][“值”])
elif字段[“标签”]=“性别”:
genders.append(字段[“值”][0][“值”][“文本”])
其他:
#别的
其中,
users
是来自API的响应列表,其中每个JSON都有
是一个字典列表,我可以在其中找到
字段
键,该键的值是不同字段(如姓名、姓氏和性别)的字典列表

问题是带有“标签:研究领域”的词典是可选的,并且不总是出现在字段列表中


我如何检查它的存在,如果是这样,将它的值附加到列表中,否则将
None
添加到列表中?

在我看来,您拥有的数据似乎不是有效的JSON。然而,如果我是你,我会尝试使用。根据文档,如果遇到标签不在其内的对象,此函数将放置
None