将项目列表转换为JSON父子层次结构可以通过以下步骤实现:
以下是一个示例代码,演示如何将项目列表转换为JSON父子层次结构:
import json
def convert_to_json_hierarchy(projects):
json_hierarchy = {}
for project in projects:
project_id = project['id']
parent_id = project['parent_id']
if parent_id is None:
# 根项目
json_hierarchy[project_id] = project
else:
# 子项目
parent_project = json_hierarchy.get(parent_id, {})
parent_project.setdefault('children', []).append(project)
json_hierarchy[parent_id] = parent_project
return json.dumps(list(json_hierarchy.values()))
# 示例项目列表
projects = [
{'id': 1, 'name': '项目A', 'parent_id': None},
{'id': 2, 'name': '项目B', 'parent_id': None},
{'id': 3, 'name': '子项目A1', 'parent_id': 1},
{'id': 4, 'name': '子项目A2', 'parent_id': 1},
{'id': 5, 'name': '子项目B1', 'parent_id': 2},
{'id': 6, 'name': '子项目B2', 'parent_id': 2},
]
# 转换为JSON父子层次结构
json_hierarchy = convert_to_json_hierarchy(projects)
print(json_hierarchy)
这段代码将输出以下JSON字符串:
[
{
"id": 1,
"name": "项目A",
"parent_id": null,
"children": [
{
"id": 3,
"name": "子项目A1",
"parent_id": 1
},
{
"id": 4,
"name": "子项目A2",
"parent_id": 1
}
]
},
{
"id": 2,
"name": "项目B",
"parent_id": null,
"children": [
{
"id": 5,
"name": "子项目B1",
"parent_id": 2
},
{
"id": 6,
"name": "子项目B2",
"parent_id": 2
}
]
}
]
这个例子中,项目A和项目B是根项目,它们分别有子项目A1、A2和B1、B2。通过转换,我们将项目列表转换为了JSON父子层次结构。
领取专属 10元无门槛券
手把手带您无忧上云