python json(dict) jsonpath 获取字典路径下的值

   
def json_path_value(jsondict,path):
    try:
        num=1
        pahts = path.split(".")
        mydict={}
        for p in pahts:
            if num==1:
                mydict = jsondict[p+""]
                num=num+1
            else:
                mydict = mydict[p+""]
                num=num+1
        return mydict
    except Exception as e:
        logging.error("get value from path failure and the exception is "+str(e))
        return None
    
if __name__ == '__main__':
    pass
    fang={
        "a":"a",
        "b":"b",
        "ha":{
            "a1":"a1",
            "a2":"a2",
            "ha1":{
                "h1":"h1",
                "ha2":{
                      "p3":"p3",
                      "p2":"p2"
                       },
                 }
            }
        }
    
    print(type(fang))
     
    value = json_path_value(fang, "a")
    value1 = json_path_value(fang, "ha.ha1.ha2.p2")
    value2 = json_path_value(fang, "b")
     
    print("value is  --:"+value)
    print("value1 is  --:"+str(value1))
    print("value2 is  --:"+str(value2))
原文地址:https://www.cnblogs.com/lshan/p/11865477.html