使用 python 遍历出数据库中三级菜单
时间:2021-07-01 10:21:17
帮助过:32人阅读
"id":
1,
"menu_name":
"菜单1",
"pid":
0},
{"id":
2,
"menu_name":
"菜单1-1",
"pid":
1},
{"id":
3,
"menu_name":
"菜单1-2",
"pid":
1},
{"id":
4,
"menu_name":
"菜单1-3",
"pid":
1},
{"id":
5,
"menu_name":
"菜单1-1-1",
"pid":
2},
{"id":
6,
"menu_name":
"菜单1-1-2",
"pid":
2},
{"id":
7,
"menu_name":
"菜单2",
"pid":
0},
{"id":
8,
"menu_name":
"菜单2-1",
"pid":
7},
{"id":
9,
"menu_name":
"菜单2-2",
"pid":
7},
{"id":
10,
"menu_name":
"菜单2-3",
"pid":
7},
{"id":
11,
"menu_name":
"菜单2-1-1",
"pid":
8},
{"id":
12,
"menu_name":
"菜单2-1-2",
"pid":
8},
{"id":
13,
"menu_name":
"菜单2-2-1",
"pid":
9},
{"id":
14,
"menu_name":
"菜单2-3-1",
"pid":
10},
{"id":
15,
"menu_name":
"菜单2-3-2",
"pid":
10},
{"id":
16,
"menu_name":
"菜单2-3-3",
"pid":
10},
{"id":
17,
"menu_name":
"菜单2-3-4",
"pid":
10}
]
def get_menu(a):
dic_test=
{}
for tcc
in a:
if(tcc[
"pid"]==
0):
dic_test[tcc["menu_name"]]={
"id":tcc[
"id"],
"child":[]}
for i
in dic_test:
index1=dic_test[i][
"id"]
menu_name1=
i
for j
in a:
if(j[
"pid"]==
index1):
dic_test[menu_name1]["child"].append({j[
"menu_name"]:{
"id":j[
"id"],
"child":[]}})
if(dic_test[menu_name1][
"child"]):
for indexc,k
in enumerate(dic_test[menu_name1][
"child"]):
for l
in a:
for x,b
in k.items():
if(b[
"id"]==l[
"pid"]):
dic_test[menu_name1]["child"][
int(indexc)][x][
"child"].append({l[
"menu_name"]:{
"id":l[
"id"],
"child":[]}})
return dic_test
print(get_menu(a))
#输出
‘‘‘
{
‘菜单1‘: {
‘id‘:
1,
‘child‘: [{
‘菜单1-1‘: {
‘id‘:
2,
‘child‘: [{
‘菜单1-1-1‘: {
‘id‘:
5,
‘child‘: []
}
}, {
‘菜单1-1-2‘: {
‘id‘:
6,
‘child‘: []
}
}]
}
}, {
‘菜单1-2‘: {
‘id‘:
3,
‘child‘: []
}
}, {
‘菜单1-3‘: {
‘id‘:
4,
‘child‘: []
}
}]
},
‘菜单2‘: {
‘id‘:
7,
‘child‘: [{
‘菜单2-1‘: {
‘id‘:
8,
‘child‘: [{
‘菜单2-1-1‘: {
‘id‘:
11,
‘child‘: []
}
}, {
‘菜单2-1-2‘: {
‘id‘:
12,
‘child‘: []
}
}]
}
}, {
‘菜单2-2‘: {
‘id‘:
9,
‘child‘: [{
‘菜单2-2-1‘: {
‘id‘:
13,
‘child‘: []
}
}]
}
}, {
‘菜单2-3‘: {
‘id‘:
10,
‘child‘: [{
‘菜单2-3-1‘: {
‘id‘:
14,
‘child‘: []
}
}, {
‘菜单2-3-2‘: {
‘id‘:
15,
‘child‘: []
}
}, {
‘菜单2-3-3‘: {
‘id‘:
16,
‘child‘: []
}
}, {
‘菜单2-3-4‘: {
‘id‘:
17,
‘child‘: []
}
}]
}
}]
}
}
‘‘‘
使用 python 遍历出数据库中三级菜单
标签:pre python rate turn enumerate pen 遍历 play def