如何遍历嵌套字典并为JSON对象添加org_path路径字段
为嵌套组织添加层级路径(org_path)的实现方案
这是典型的树形结构遍历问题,用递归就能轻松解决——递归遍历每个组织节点,传递父级的路径,给当前节点生成完整路径后,再递归处理子节点。
Python 实现代码
def add_org_path(org, parent_path=""): # 生成当前组织的路径 if parent_path: org["org_path"] = f"{parent_path}/{org['org_name']}" else: # 根节点没有父路径,直接用自身名称 org["org_path"] = org["org_name"] # 递归处理子组织 for sub_org in org.get("orgs", []): add_org_path(sub_org, org["org_path"]) # 你的原始数据 source = { "org_name": "root", "orgs": [ { "org_name": "alpha1", "orgs": [] }, { "org_name": "alpha2", "orgs": [ { "org_name": "beta1", "orgs": [ { "org_name": "gama1", "orgs": [] } ] } ] } ] } # 调用函数添加路径 add_org_path(source) # 格式化打印结果 import json print(json.dumps(source, indent=2))
代码说明
- 递归函数
add_org_path接收两个参数:当前组织节点org,以及父级路径parent_path(默认空字符串,对应根节点)。 - 根节点的
org_path直接等于自身的org_name;子节点的路径是父级路径拼接自身名称,用/分隔。 - 遍历当前节点的
orgs列表,把每个子节点和当前节点的org_path作为父路径传入,递归处理。
运行代码后,输出的结构就和你要求的完全一致。
内容的提问来源于stack exchange,提问作者Tony Frank
相关产品推荐
相关产品推荐

