python 嵌套字典取值增强版
程序员文章站
2023-11-12 09:27:28
由于返回时list,经过层层嵌套,list是复杂的,封装一个,增加一个list转换 这样就按顺序,读取了复杂的dict, 比之前的一篇文章的代码,更加完美。 ......
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转换
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, 比之前的的代码,更加完美。
上一篇: Java 对象序列化与反序列化
下一篇: Ai怎么绘制一款简单的网购购物车图标?