python 多层嵌套字典读取_python3 如何解析多层嵌套字典,具体内容打开看

本文介绍了如何在Python中解析多层嵌套字典,特别是寻找值为3的路径。通过递归函数get_count(),遍历字典并记录路径。当遇到值为3时,将路径保存到结果列表中。最终输出了找到的路径,如'Large_dict>middle_dict2>small_dict3'。
摘要由CSDN通过智能技术生成

# 见 代码   ,代码粘贴上不带格式,按照图片用tab键调整一下,图片是核心部分

747b929f4afd10e958697f1a2335a121.png

simple_dict = {

'Large_dict' : {'middle_dict1' : {'small_dict1' : 1 ,

'small_dict2' : 2},

'middle_dict2' : {'small_dict3' : 3 ,

'small_dict4' : 4,

'small_dict5':{'small_dict10' : 1 ,

'small_dict22' : 3},

},

}

}

# 需求分析: 从嵌套字典中,找到值为3的  路径关系

# 简化模型:从value为3的值 递归向上层的 key ,递归过程保存当前已经递归的路径和当前层

# 1.找到字典一共有多少层:

count = 0

path = ''# 设置路径的全局变量

result = []  # 记录结论

def get_count(dict_test):

global count  # 声明每次递归均是改变全局变量

global path  # 拼接档期啊你的路径

global result  # 记录结果

for i in dict_test:

if type(dict_test[i]).__name__ =='dict' :

# 如果是字典,则继续向下展开,即执行递归:

if count == 0:   # 增加判断 消除第一个 

path = path  + i

else:

path = path + '

count += 1  # 记录层数

get_count(dict_test[i])

else:

try:

# 如果不是字典 则是键值对,查询value值是不是3,当前i包含两个内容,一个是key,一个是value

if dict_test[i] == 3:

# 找到了value =3 的值

result.append(f"路径是: %s,在第%d层" % (path + '

except Exception as  result:  # 虽然字典限定了写法,为了增加健壮性 此位置使用try指令,避免类型错误

print(result)

continue

if __name__ == '__main__':

get_count(simple_dict)  # 执行递归函数

[print(str(i + 1) + ':' + j) for i, j in enumerate(result)]  # 打印结果

'''

结果:

1:路径是: Large_dict

2:路径是: Large_dict

'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值