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

python 嵌套字典取值增强版的更多相关文章

  1. python 嵌套字典比较值,取值

    #取值import types allGuests = {'Alice': {'apples': 5, 'pretzels': {'12':{'beijing':456}}}, 'Bob': {'ha ...

  2. Python 字符串——巧取值和列表——巧取值 对比

    Python 字符串——巧取值和列表——巧取值 对比 1.字符串取值实例: samp_string = "Whatever you are, be a good one." for ...

  3. python关于字典嵌套字典,列表嵌套字典根据值进行排序

    python 对于字典嵌套字典, 列表嵌套字典排序 例:列表嵌套自字典:d = [{"name": '张三', 's': 68}, {'name': '李四', 's': 97}] ...

  4. python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05

    迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种 ...

  5. python根据字典的值进行排序:

    有一个列表嵌套字典:[{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d&q ...

  6. Actioncontext之类的map嵌套,取值

    假设图中最顶端的map设为Actioncontext的map,这种情况,用<s:property value=""/>或者EL表达式取值,可以用#key1.key2.k ...

  7. python 嵌套爬取网页信息

    当需要的信息要经过两个链接才能打开的时候,就需要用到嵌套爬取. 比如要爬取起点中文网排行榜的小说简介,找到榜单网址:https://www.qidian.com/all?orderId=&st ...

  8. python数组冒号取值操作

    1.冒号的用法 1.1 一个冒号 a[i:j] 这里的i指起始位置,默认为0:j是终止位置,默认为len(a),在取出数组中的值时就会从数组下标i(包括)一直取到下标j(不包括j) 在一个冒号的情况下 ...

  9. python:字符串取值

    某个字符串为stmp="abcdef54321" 取前面5个stmp[:5] #abcde 取后面5个stmp[-5:] #54321 从前面开始取,不包括最后两个stmp[:-2 ...

随机推荐

  1. JavaScript 自己写一个 replaceAll() 函数

    JavaScript 的  replace()  方法可以在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 但是,只输入字符串的话,仅替换第一个字符,当然也可以用正则表达式来进行 ...

  2. 【MySQL】SQL语句基础

    一.操作数据库 1.1 创建数据库 1.2 查看数据库 1.3 修改数据库 1.4 删除数据库 1.5 选择数据库 二.操作表 2.1 创建表 2.2 查看表 2.3 修改表 2.4 删除表 三.操作 ...

  3. 阿里云ACA—— I

    ACA 阿里云大数据助理工程师 阿里云大学 大数据助理工程师课程笔记分享, 本资料仅供个人学习,不允许用作商业用途,侵权必删 == Alibaba Cloud Certification Associ ...

  4. vim小结

    1.工作模式 命令模式 编辑模式 一般模式 2.配置文件 :set nu  /  :set nonu 显示与取消行号 :syntax on  /  :syntax off 是否依据语法显示相关的颜色帮 ...

  5. [转]Serverless实践

    转载的,原文: https://www.cnblogs.com/middleware/p/9470533.html ------------------------------------------ ...

  6. 01 浅谈c++及面向对象编程

    参考链接: 学习完c++但是对c++面向对象编程还是比较模糊,现在花时间总体来总结一下: c++中的对象是使用类来定义的,下面先重点讲一下类的概念. 说到类就要先说一下类的三种特性:封装,继承,多态. ...

  7. 《The One!团队》:BETA Scrum metting3

    项目 内容 作业所属课程 所属课程 作业要求 作业要求 团队名称 < The One !> 作业学习目标 (1)掌握软件黑盒测试技术:(2)学会编制软件项目总结PPT.项目验收报告:(3) ...

  8. PHP Web 木马扫描器

    直接放在网站根目录运行即可 <?php /**************PHP Web木马扫描器************************/ /* [+] 版本: v1.0 */ /* [+ ...

  9. 「TJOI2018」str

    碱基序列 题目描述 小豆参加了生物实验室.在实验室里,他主要研究蛋白质.他现在研究的蛋白质是由$k$个氨基酸按一定顺序构成的.每一个氨基酸都可能有$a$种碱基序列$s_{i,j}$构成. 现在小豆有一 ...

  10. drf框架 - 序列化组件 | ModelSerializer (查,增,删,改)

    ModelSerializer 序列化准备: 配置 settings.py # 注册rest_framework框架 INSTALLED_APPS = [ ... 'rest_framework' ] ...