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']