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 当前全局变量和入口参数的所有属性
Jul 01 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python金融数据可视化汇总
Nov 17 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
详解Python如何生成词云的方法
Jun 01 Python
PyCharm配置mongo插件的方法
Nov 30 Python
python获取Linux发行版名称
Aug 30 Python
python2 对excel表格操作完整示例
Feb 23 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
pandas 数据类型转换的实现
Dec 29 Python
pytorch 如何使用amp进行混合精度训练
May 24 Python
Python中的变量与常量
Nov 11 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批量上传的实现代码
2013/06/09 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
js Function类型
2011/12/04 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
python计算对角线有理函数插值的方法
2015/05/07 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
python实现公司年会抽奖程序
2019/01/22 Python
详解用python生成随机数的几种方法
2019/08/04 Python
python的range和linspace使用详解
2019/11/27 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
信息专业个人的自我评价
2013/12/27 职场文书
社团活动策划书范文
2014/01/09 职场文书
给校长的建议书
2014/03/12 职场文书
2015年教师新年寄语
2014/12/08 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
基于Golang 高并发问题的解决方案
2021/05/08 Golang