这样的查询结果每个节点会有多条,对应该节点归属的多个分组,怎样把这样的查询结果用python处理成json结构,使每个节点为list的一个元素,多个分组为节点结构内的一个list
时间: 2024-04-14 15:29:35 浏览: 14
要将查询结果处理为符合你描述的JSON结构,可以使用Python中的字典(dict)和列表(list)来构建。以下是一个示例代码,演示如何处理查询结果为你所需的JSON结构:
```python
import json
# 示例查询结果,每个节点有多个分组
query_result = [
{'node_id': 1, 'node_name': 'Node 1', 'group_id': 101, 'group_name': 'Group A'},
{'node_id': 1, 'node_name': 'Node 1', 'group_id': 102, 'group_name': 'Group B'},
{'node_id': 2, 'node_name': 'Node 2', 'group_id': 103, 'group_name': 'Group C'},
{'node_id': 2, 'node_name': 'Node 2', 'group_id': 104, 'group_name': 'Group D'},
]
# 使用字典和列表构建JSON结构
result = {}
for row in query_result:
node_id = row['node_id']
node_name = row['node_name']
group_id = row['group_id']
group_name = row['group_name']
# 如果节点在结果字典中不存在,则创建一个新的节点字典
if node_id not in result:
result[node_id] = {
'node_name': node_name,
'groups': []
}
# 将分组信息添加到节点的groups列表中
result[node_id]['groups'].append({
'group_id': group_id,
'group_name': group_name
})
# 将结果转换为JSON格式
json_result = json.dumps(list(result.values()), indent=4)
print(json_result)
```
运行上述代码,将会得到一个符合你描述的JSON结构的字符串输出。你可以根据实际情况将其保存为文件或传递给其他模块使用。