传入参数mysql2 张表查询出来的数据形成树结构
时间: 2024-02-03 12:12:12 浏览: 71
可以使用递归函数来将查询结果形成树结构。以下是一个示例代码:
```python
import mysql.connector
# 连接 MySQL 数据库
cnx = mysql.connector.connect(user='username', password='password',
host='localhost',
database='mydatabase')
cursor = cnx.cursor()
# 查询表中数据
query = ("SELECT id, name, parent_id FROM mytable")
cursor.execute(query)
# 将查询结果转换为树结构
def build_tree(parent_id, data):
children = []
for row in data:
if row[2] == parent_id:
child = {'id': row[0], 'name': row[1]}
grandchildren = build_tree(row[0], data)
if grandchildren:
child['children'] = grandchildren
children.append(child)
return children
tree_data = build_tree(None, cursor.fetchall())
# 关闭数据库连接
cursor.close()
cnx.close()
```
上述代码中,`build_tree` 函数接收两个参数:`parent_id` 表示当前节点的父节点 ID,`data` 表示查询结果。在函数中,我们遍历查询结果,找到所有父节点 ID 为 `parent_id` 的节点,将其添加到 `children` 列表中,并递归调用 `build_tree` 函数,以该节点的 ID 作为下一层节点的父节点 ID。如果该节点有子节点,则在节点字典中添加 `children` 属性,值为其子节点构成的列表。最终,我们得到的 `tree_data` 变量即为树形结构的数据。
阅读全文