gpt4 book ai didi

python - 打印 python 嵌套字典的所有值的完整键路径

转载 作者:太空狗 更新时间:2023-10-29 22:07:40 25 4
gpt4 key购买 nike

如果下面是我的嵌套字典,我想递归解析并打印所有值以及嵌套键的完整路径。

my_dict = {'attr':{'types':{'tag':{'name':'Tom', 'gender':'male'},'category':'employee'}}}

预期输出:

Key structure : my_dict["attr"]["types"]["tag"]["name"]<br>
value : "Tom"<br>
Key structure : my_dict["attr"]["types"]["tag"]["gender"]<br>
value : "male"<br>
Key structure : my_dict["attr"]["types"]["category"]<br>
value : "employee"<br>

我写了一个递归函数,但是运行到这个:

my_dict = {'attr':{'types':{'tag':{'name':'Tom','gender':'male'},'category':'employee'}}}

def dict_path(path,my_dict):
for k,v in my_dict.iteritems():
if isinstance(v,dict):
path=path+"_"+k
dict_path(path,v)
else:
path=path+"_"+k
print path,"=>",v

return
dict_path("",my_dict)

输出:

_attr_types_category => 雇员
_attr_types_category_tag_gender => 男性
_attr_types_category_tag_gender_name => 汤姆

在上面:对于男性,关键结构不应该包含“类别”如何保留正确的 key 结构?

最佳答案

你不应该改变 dict_path() 函数中的 path 变量:

def dict_path(path,my_dict):
for k,v in my_dict.iteritems():
if isinstance(v,dict):
dict_path(path+"_"+k,v)
else:
print path+"_"+k,"=>",v
dict_path("",my_dict)

关于python - 打印 python 嵌套字典的所有值的完整键路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34836777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com