使用python访问json循环中的嵌套值

2024-09-27 19:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想获取这个json对象中每个api3的值,其中每个数组都有api3值。你知道吗

 {
    "count": 10,
    "result": [
    {
            "type": "year",
            "year": {
                "month": {
                    "api1": {
                        "href": "https://Ap1.com"
                    },
                    "api2": {
                        "href": "FETCH-CONTENT"
                    },
                    "api3": {
                        "href": "https://Ap3.com"
                    },
                    "api4": {
                        "href": "https://Ap4.com"
                    }
                },
                "id": "sdvnkjsnvj",
                "summary": "summeryc",
                "type": "REST",
                "apiId": "mlksmfmksdfs",
                "idProvider": {
                    "id": "sfsmkfmskf",
                    "name": "Apikey"
                },
                "tags": []
            }
        },
        {
            "type": "year1",
            "year": {
                "month": {
                    "api1": {
                        "href": "https://Ap11.com"
                    },
                    "api2": {
                        "href": "FETCH-CONTENT-1"
                    },
                    "api3": {
                        "href": "https://Ap13.com"
                    },
                    "api4": {
                        "href": "https://Ap14.com"
                    }
                },
                "id": "sdvnkjsnvj",
                "summary": "summeryc",
                "type": "REST",
                "apiId": "mlksmfmksdfs",
                "idProvider": {
                    "id": "sfsmkfmskf",
                    "name": "Apikey"
                },
                "tags": []
            }
        },

我能够得到整个json对象和其中的第一个值。你知道吗

with open('C:\python\examplee.json','r+') as fr:
data = json.load(fr)
print(data["result"])

事先谢谢你帮我弄清楚这件事。你知道吗


Tags: 对象httpscomidjsontypefetchresult
2条回答

看起来您的JSON模式是静态的,所以您可以使用以下内容:

print([x['year']['month']['api3']['href'] for x in data['result']])

将返回给您:

['https://Ap3.com', 'https://Ap13.com']

对于结果键列表中的每个元素,获取项中嵌套字典的值

print([item['year']['month']['api3'] for item in data['result']])

输出将是[{'href': 'https://Ap3.com'}, {'href': 'https://Ap13.com'}]

或者如果您也想得到href

print([item['year']['month']['api3']['href'] for item in data['result']])

输出将是

['https://Ap3.com', 'https://Ap13.com']

所以你的整个代码看起来像

data = {}
with open('C:\python\examplee.json','r+') as fr:
    data = json.load(fr)

print([item['year']['month']['api3']['href'] for item in dct['result']])

相关问题 更多 >

    热门问题