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

作者:jingxian 时间:2023-07-22 16:48:56 

最近拾回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,多维,嵌套,字典,遍历
0
投稿

猜你喜欢

  • 详解如何用OpenCV + Python 实现人脸识别

    2021-07-07 19:22:35
  • Python高效编程技巧

    2023-08-19 17:29:56
  • python连接mongodb集群方法详解

    2021-08-26 11:45:08
  • Python多线程同步Lock、RLock、Semaphore、Event实例

    2023-08-03 20:47:15
  • Myeclipse链接Oracle等数据库时lo exception: The Network Adapter could not establish the connection

    2023-07-19 12:40:02
  • Python库学习Tkinter制作GUI个性签名设计软件

    2021-06-23 08:17:54
  • ubuntu20.04配置mysql8.0的实现步骤

    2024-01-28 14:56:16
  • 解决python中的幂函数、指数函数问题

    2021-12-03 01:26:00
  • python实现简单的井字棋游戏(gui界面)

    2023-03-06 23:16:01
  • 使用ob系列函数实现PHP网站页面静态化

    2023-11-15 03:26:05
  • python实现网页自动签到功能

    2024-01-03 00:13:14
  • MySQL中的全表扫描和索引树扫描 的实例详解

    2024-01-24 02:39:43
  • Python自定义进程池实例分析【生产者、消费者模型问题】

    2023-05-20 12:20:02
  • 对于Python装饰器使用的一些建议

    2022-05-26 09:05:43
  • 通过代码实例了解Python异常本质

    2023-06-14 06:29:19
  • python获取从命令行输入数字的方法

    2021-08-23 15:19:02
  • python3爬虫怎样构建请求header

    2023-04-17 19:01:45
  • 将有安全问题的SQL过程删除,比较全面

    2007-08-06 14:46:00
  • Python测试网络连通性示例【基于ping】

    2023-09-16 13:48:38
  • python调用百度语音REST API

    2022-09-16 18:19:07
  • asp之家 网络编程 m.aspxhome.com