python字典深度检索

network_dict = {
    "ens33":{
        "up":"False",
        "hwaddr":"00:0c:29:68:e2:d7",
        "inet":[
            {
                "address":"192.168.15.130",
                "netmask":"255.255.255.0",
                "broadcast":"192.168.15.255"
            }
        ]
    },
    "docker0":{
        "up":"False",
        "hwaddr":"02:42:76:64:0b:81",
        "inet":[
            {
                "address":"172.17.0.1",
                "netmask":"255.255.0.0",
                "broadcast":"172.17.255.255"
            }
        ]
    },
    "dummy0":{
        "up":"False",
        "hwaddr":"c6:2a:2f:04:1a:e2"
    },
    "kube-ipvs0":{
        "up":"False",
        "hwaddr":"62:f5:11:3b:a1:b0",
        "inet":[
            {
                "address":"10.255.0.1",
                "netmask":"255.255.255.255",
                "broadcast":"None"
            },
            {
                "address":"10.255.0.2",
                "netmask":"255.255.255.255",
                "broadcast":"None"
            }
        ]
    }
}

def find(target, dictData,alist=None, notFound=None):
    """字典深度搜索"""
    if alist == None:
        alist = []
    
    if isinstance(dictData, dict):
        for key,value in dictData.items():
            if key == target:
                alist.append(value)

            else:
                find(target, value,alist=alist)
    elif isinstance(dictData, (list, tuple)):
        for item in dictData:
            find(target, item,alist=alist)
    else:
        pass
    if alist:
        return alist
    else:
        return notFound
    

address = find('address', network_dict)
address1 = find('address', network_dict)


print(address)
print(address1)
#输出结果
['192.168.15.130', '172.17.0.1', '10.255.0.1', '10.255.0.2']
['192.168.15.130', '172.17.0.1', '10.255.0.1', '10.255.0.2']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值