Наполнение списка в виде структуры дерева

183 просмотраpython python-2.x python-3.6 python-3.x
0
0 Комментариев

Добрый день.
Коллеги, помогите начинающему в изучение python.
Требуется создать данные в виде дерева:
[
children:[
{
text: «Title 1», id: ‘1’, expanded: true,
children: [
{
text: «title2», leaf: true ,
},
{
text: «title3», leaf: true
}
]
},
{
text: «Title4», id: ‘4’, expanded: true,
children: [
{
text: «title5», leaf: true ,
}
]
}
]
]
Исходные данные выглядят так:
mylist =[{‘id’: ‘1’, ‘name’: ‘Title1’, ‘id_parent’: ‘0’}, {‘id’: ‘2’, ‘name’: ‘title2’, ‘id_parent’: ‘1’}, {‘id’: ‘3’, ‘name’: ‘title3’, ‘id_parent’: ‘1’}, {‘id’: ‘4’, ‘name’: ‘Title4’, ‘id_parent’: ‘0’},
{‘id’: ‘5’, ‘name’: ‘title5’, ‘id_parent’: ‘4’}]
Прошелся рекурсией, но опыта и знаний не хватает что бы правильно заполнить список в необходимом виде :
def get_parent(id_parent):
c = []
for x in mylist:
if not x[«id»] == id_parent and x[«id_parent»] == id_parent:
if x[«id_parent»] == «0»:
x[‘expanded’] = True
else:
x[‘leaf’] = True
c.append(x)
return(c)
def get_tree(t):
lst = []
main_data = []
for x in get_parent(t):
all_stor = {}
all_stor[«text»] = x[‘name’]
all_stor[«id»] = x[‘id’]
if x.get(‘expanded’):
all_stor[«expanded»] = x[‘expanded’]
else:
all_stor[«leaf»] = x[‘leaf’]
main_data.append(all_stor)#Как правильно создать необходимую структуру?
lst.append([main_data, get_tree(x[«id»])])
return lst
main = get_tree(«0»)
print(main)
Помогите, пож-та,  заполнить список в необходимом формате.


Добавить комментарий

0 Answers

Python Опубликовано 16.12.2018
Напишите свой ответ на данный вопрос.
Scroll Up