python list转换成树形结构_python递归查询菜单并转换成json实例

本文介绍了如何使用Python从数据库查询菜单数据并递归构建树形结构,然后将其转换为JSON格式。文章包含关键代码片段,涉及数据库表结构、递归函数的实现以及将数据对象转换为JSON的处理过程。
摘要由CSDN通过智能技术生成

最近需要用python写一个菜单,折腾了两三天才搞定,现在记录在此,需要的朋友可以借鉴一下。

备注:文章引用非可执行完整代码,仅仅摘录了关键部分的代码

环境

数据库:mysql

python:3.6

表结构

CREATE TABLE `tb_menu` (

`id` varchar(32) NOT NULL COMMENT '唯一标识',

`menu_name` varchar(40) DEFAULT NULL COMMENT '菜单名称',

`menu_url` varchar(100) DEFAULT NULL COMMENT '菜单链接',

`type` varchar(1) DEFAULT NULL COMMENT '类型',

`parent` varchar(32) DEFAULT NULL COMMENT '父级目录id',

`del_flag` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标志 0:不删除 1:已删除',

`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

PRIMARY KEY (`id`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单表';

Python代码

Menu对象中,有一个子菜单列表的引用“subMenus”,类型为list

核心代码

def set_subMenus(id, menus):

"""

根据传递过来的父菜单id,递归设置各层次父菜单的子菜单列表</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值