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 相关文章推荐
python3使用urllib示例取googletranslate(谷歌翻译)
Jan 23 Python
Python中的包和模块实例
Nov 22 Python
Python中的模块和包概念介绍
Apr 13 Python
Python中的变量和作用域详解
Jul 13 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
django重新生成数据库中的某张表方法
Aug 28 Python
python 并发下载器实现方法示例
Nov 22 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
解决keras backend 越跑越慢问题
Jun 18 Python
Python3爬虫中关于中文分词的详解
Jul 29 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实现PDO的mysql数据库操作类
2014/12/12 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python和php通信乱码问题解决方法
2014/04/15 Python
Python入门篇之条件、循环
2014/10/17 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
Python实现计算最小编辑距离
2016/03/17 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
使用C++扩展Python的功能详解
2018/01/12 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
企业办公室岗位职责
2014/03/12 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
端午节演讲稿
2014/05/23 职场文书
三八节标语
2014/06/27 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
2014年人事科工作总结
2014/11/19 职场文书
南极大冒险观后感
2015/06/05 职场文书
golang 实现并发求和
2021/05/08 Golang
Flask response响应的具体使用
2021/07/15 Python
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis