python 嵌套字典取值增强版
def getdictvalue(d,code):
result=[]
if isinstance(d, dict) :
try:
value = d[code]
result.append(value)
except Exception as e:
pass
for valuedd in d.values():
if isinstance(valuedd,dict):
yied_result=getdictvalue(valuedd,code)
if len(yied_result) != 0:
result.append(getdictvalue(valuedd,code))
elif isinstance(valuedd,(list,tuple)):
for item in d:
valueitem=getdictvalue(valuedd,code)
if valueitem !="None" and valueitem is not None and len(valueitem)!=0:
if valueitem not in result:
result.append(valueitem)
elif isinstance(d, (list, tuple)):
for item in d:
value=getdictvalue(item,code)
if value !="None" and value is not None and len(value)!=0:
if value not in result:
result.append(value)
return result
由于返回时list,经过层层嵌套,list是复杂的,封装一个,增加一个list转换
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
class listchangetype(object):
"""对于查找后的list的数据的清洗"""
def __init__(self):
self.arg = []
def make(self,listone):
for i in listone:
if isinstance(i,(type,list)):
for l in i:
self.make(i)
else:
if i not in self.arg:
self.arg.append(i)
return self.arg
这样就按顺序,读取了复杂的dict