gpt4 book ai didi

python - 打印层次字典的递归方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:18 25 4
gpt4 key购买 nike

我想用 Python 创建一个递归方法来打印这个字典:

partners = {
'manager-1': {
'name': 'Manager 1',
'children': {
'manager-2': {
'name': 'Manager 2',
'children': {
'employee-1': {
'name': 'Employee 1',
'children': {
'employee-7': {
'name': 'Employee 7',
},
'employee-8': {
'name': 'Employee 8',
}
}
},
'employee-2': {
'name': 'Employee 2',
},
'employee-3': {
'name': 'Employee 3',
},
},
},
'manager-3': {
'name': 'Manager 3',
'children': {
'employee-4': {
'name': 'Employee 4',
},
'employee-5': {
'name': 'Employee 5',
},
'employee-6': {
'name': 'Employee 6',
},
},
},
'manager-4': {
'name': 'Manager 4',
},
'manager-5': {
'name': 'Manager 5',
}
}
}
}

然后像这样给出:

--Manager 1
----Manager 2
------Employee 1
--------Employee 7
--------Employee 8
------Employee 2
------Employee 3
----Manager 3
------Manager 4
------Manager 5
------Manager 6
----Manager 4
----Manager 5

我做了这个方法:

def hierarch(partners):
for partner in partners:
if 'children' not in partner.keys():
print(partner['name'])
else:
hierarch(partner['children'])

我在运行代码时遇到了这个错误:

AttributeError: 'str' object has no attribute 'keys'

我怎样才能制作一个允许我打印这个层次结构的脚本?我不太擅长字典。我正在使用 Python 3。有什么帮助吗?谢谢。

最佳答案

您需要重现确切的顺序吗?您可以使用类似这样的方法来遍历数据结构:

def recurse(data, level):
if type(data) is dict:
if "name" in data:
print("-" * level + data["name"])
for (key, value) in data.items():
recurse(value, level + 1)
recurse(partners, 1)

关于python - 打印层次字典的递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52625673/

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