首页 > 解决方案 > How to get specific data on a unit of dict in json

问题描述

I have a json type data:

{
    "data": [
        {
            "id": 1,
            "library_id": 1,
            "caseinfo_id": 80,
            "caseinfo":{
                "id": 840,
                "patient_name": "John"
            }
        },
        {
            "id": 2,
            "library_id": 2,
            "caseinfo_id": 81,
            "caseinfo":{
                "id": 850,
                "patient_name": "Wick"
            }
        }
    ]
}

I want get specific info data, for example i want get the relate info that patient_name = "Wick",so the return data will be:

        {
            "id": 2,
            "library_id": 2,
            "caseinfo_id": 81,
            "caseinfo":{
                "id": 850,
                "patient_name": "Wick"
            }
        }

Can someone help me on that? Thanks a lot.

标签: jsonpython-3.xdictionary

解决方案


The value that you're looking for is in the nested dict:

dd = {
    "data": [
        {
            "id": 1,
            "library_id": 1,
            "caseinfo_id": 80,
            "caseinfo":{
                "id": 840,
                "patient_name": "John"
            }
        },
        {
            "id": 2,
            "library_id": 2,
            "caseinfo_id": 81,
            "caseinfo":{
                "id": 850,
                "patient_name": "Wick"
            }
        }
    ]
}

for key, value in dd.items():
    for elem in value:
        for k,v in elem.items():
            if isinstance(v,dict):
                if 'Wick' in v.values():
                    print(elem)

OUTPUT:

{'caseinfo_id': 81, 'library_id': 2, 'id': 2, 'caseinfo': {'id': 850, 'patient_name': 'Wick'}} 

推荐阅读