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 相关文章推荐
spyder常用快捷键(分享)
Jul 19 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 Python
Python编写Windows Service服务程序
Jan 04 Python
Django中的Signal代码详解
Feb 05 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
Python selenium抓取微博内容的示例代码
May 17 Python
python flask实现分页的示例代码
Aug 02 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
python实现二分类和多分类的ROC曲线教程
Jun 15 Python
Python爬取微信小程序Charles实现过程图解
Sep 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 mkdir()定义和用法
2009/01/14 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
js中的闭包实例展示
2018/11/01 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
详解python时间模块中的datetime模块
2016/01/13 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
国际贸易专业个人鉴定
2014/02/22 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
初中家长意见
2015/06/03 职场文书
2015暑假假期总结
2015/07/13 职场文书
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技