python 嵌套字典取值_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转换

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, 比之前的一篇文章的代码,更加完美。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值