У меня есть json-структура меню пользовательского интерфейса, я пытаюсь сделать это, когда пользователь из пользовательского интерфейса вводит новый узел или изменяет узел ранга любого родительского или дочернего меню, структура json должна сортироваться по значению узла ранга.Проблема, с которой я столкнулся, заключается в том, что мой метод сортировки работает до тех пор, пока значение ранга не станет однозначным, как только оно станет двузначным, например 10, 11, 12.... 99, сортировка не работает должным образом, и меню не отображается. в правильном месте согласно сортировке.
Пример структуры меню для справки:
Код: Выделить всё
{
"menustructure":
[
{
"node":"Admin",
"path":"admin",
"rank": "1",
"child":[
{
"node": "Admin.resouce1",
"path":"resouce1",
"rank":"1"
},
{"node":"Admin.resouce2",
"path": "oath",
"rank":"2"
}
]
},
{
"node":"Workspace",
"path": "wsp",
"rank":"2",
"child":[{
"node": "Workspace.system1",
"path":"sys1",
"rank": "1"
},
{
"node": "Workspace.system2",
"path":"sys2",
"rank": "2"
}
]
}
]
}
**Код, который я пробовал: **
Код: Выделить всё
config['menu-config'] = sorted(config['menu-config'], key=lambda x: int(x.get('rank', float('inf'))))
Максимальный ранг родительского или дочернего элемента — 1–99.
Источник:
https://stackoverflow.com/questions/781 ... on-by-rank