I have a list like this
List = [{"name":"folder1", "id":"folderID1", "parents": ["rootID"]},
{"name":"folder2", "id":"folderID2", "parents": ["rootID"]},
{"name":"sub1", "id":"subID1", "parents": ["folderID1"]},
{"name":"sub1", "id":"subID11", "parents": ["folderID2"]},
{"name":"sub2", "id":"subID2", "parents": ["folderID1"]},
{"name":"sub3", "id":"subID3", "parents": ["subID1"]},
{"name":"sub4", "id":"subID4", "parents": ["subID3"]}]
and I want this transformed into this:
{'root': {'folder1': {'sub1': {'sub3': {'sub4': 'subID4'}}, 'sub2': 'sub2ID'},
'folder2': {'sub1': 'subID11'}}}
The code I tried:
def recursion(parent, List, dic):
for l in List:
if l["id"] == parent:
dic = recursion( l["parents"][0], l, {l["name"]:dic})
return dic
print(recursion("rootID", List, "root"))
Output:
root #it just prints root
EDIT:
{'root': {'folder1': {'sub1': {'sub3': {'sub4': 'subID4'}}, 'sub2': 'sub2ID'},
'folder2': {'sub1': 'subID11'}}}
This dictionary is actually directories The tree form is like this
root
|
├── folder1
| |
│ ├── sub1
| | |
│ │ └── sub3
| | |
│ │ └── sub4
| |
│ └── sub2
|
└── folder2
|
└── sub1