python判断字典是嵌套和嵌套字典列表

#coding: utf-8
import types

#获取字典中的objkey对应的值,适用于字典嵌套
#dict:字典
#objkey:目标key
#default:找不到时返回的默认值
def dict_get(dict, objkey, default):
    tmp = dict
    for k,v in tmp.items():
        if k == objkey:
            return v
        else:
            if type(v) is types.DictType:
                ret = dict_get(v, objkey, default)
                if ret is not default:
                    return ret
    return default

#如
dicttest={"result":{"code":"110002","msg":"设备设备序列号或验证码错误"}}
ret=dict_get(dicttest, 'msg', None)
print(ret)

字典的列表

 "network": {
        "tls": [],
        "udp": [
            {
                "src": "192.168.56.102",
                "dst": "114.114.114.114",
                "offset": 2372,
                "time": 9.506472110748291,
                "dport": 53,
                "sport": 51394
            },
            {
                "src": "192.168.56.102",
                "dst": "114.114.114.114",
                "offset": 2611,
                "time": 2.232347011566162,
                "dport": 53,
                "sport": 53604
            }]
          }
for k,v in mydict.items():
            if type(v) is types.ListType:
                for val in v:
                    if type(val) is types.DictType:
                        for key,value in val.items():
                            print("%s:%s"%(key,value))
            else:
                print("%s:%s"%(k,v))

猜你喜欢

转载自blog.csdn.net/weixin_42651205/article/details/84579894