Python多维/嵌套字典数据无限遍历的实现


Posted in Python onNovember 04, 2016

最近拾回Django学习,实例练习中遇到了对多维字典类型数据的遍历操作问题,Google查询没有相关资料…毕竟是新手,到自己动手时发现并非想象中简单,颇有两次曲折才最终实现效果,将过程记录下来希望对大家有用。

实例数据(多重嵌套):

person = {"male":{"name":"Shawn"}, "female":{"name":"Betty","age":23},"children":{"name":{"first_name":"李", "last_name":{"old":"明明","now":"铭"}},"age":4}}

目的:

遍历person中所有嵌套字典类型数据,并以 key : value 的方式显示思路:首先分析数据是否符合字典特征打印该数据的key及对应value循环检查该数据的每一个子value是否符合字典特征,如果符合则迭代执行,不符合则返回循环继续执行至结束

具体代码:

def is_dict(dict_a): #此方法弃用,python已提供数据类型检测方法isinstance() 

 try: 

  dict_a.keys() 

 except Exception , data: 

  return False 

 return True 

 

def list_all_dict(dict_a): 

 if isinstance(dict_a,dict) : #使用isinstance检测数据类型 

  for x in range(len(dict_a)): 

   temp_key = dict_a.keys()[x] 

   temp_value = dict_a[temp_key] 

   print"%s : %s" %(temp_key,temp_value) 

   list_all_dict(temp_value) #自我调用实现无限遍历

结果:

执行 list_all_dict(person),系统回应 :

male : {'name': 'Shawn'} 

name : Shawn 

children : {'age': 4, 'name': {'first_name': '\xc0\xee', 'last_name': {'now':'\xc3\xfa', 'old': '\xc3\xf7\xc3\xf7'}}} 

age : 4 

name : {'first_name': '\xc0\xee', 'last_name': {'now': '\xc3\xfa', 'old':'\xc3\xf7\xc3\xf7'}} 

first_name : 李 

last_name : {'now': '\xc3\xfa', 'old': '\xc3\xf7\xc3\xf7'} 

now : 铭 

old : 明明 

female : {'age': 23, 'name': 'Betty'} 

age : 23 

name : Betty

以上这篇Python多维/嵌套字典数据无限遍历的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python解决字典中的值是列表问题的方法
Mar 04 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
Python简单连接MongoDB数据库的方法
Mar 15 Python
简单谈谈Python中的闭包
Nov 30 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
python 读写中文json的实例详解
Oct 29 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
基于python OpenCV实现动态人脸检测
May 25 Python
python读取文件名并改名字的实例
Jan 07 Python
python实现网页录音效果
Oct 26 Python
Python使用openpyxl复制整张sheet
Mar 24 Python
浅谈Python中的正则表达式
Jun 28 Python
浅谈Python数据类型判断及列表脚本操作
Nov 04 #Python
浅谈python字典多键值及重复键值的使用
Nov 04 #Python
用Python将动态GIF图片倒放播放的方法
Nov 02 #Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 #Python
Python实现简单的四则运算计算器
Nov 02 #Python
利用Python命令行传递实例化对象的方法
Nov 02 #Python
Python 性能优化技巧总结
Nov 01 #Python
You might like
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
JavaScript触发器详解
2007/03/10 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
通过自学python能找到工作吗
2020/06/21 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
电大学习个人自我评价范文
2013/10/04 职场文书
班组长工作职责
2013/12/25 职场文书
奥巴马演讲稿
2014/01/08 职场文书
创先争优制度
2014/01/21 职场文书
美容院考勤制度
2014/01/30 职场文书
工程安全员岗位职责
2014/03/09 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
2014年维修工作总结
2014/11/22 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js