1. 程式人生 > >python判斷字典是巢狀和巢狀字典列表

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))