Я получаю ответ от сервера imap, как показано ниже. Который содержит все папки для конкретной учетной записи пользователя.
imap.list_folders()
выходы:
[((b'\\HasChildren',), b'.', 'welcome'), ((b'\\HasChildren',), b'.', 'welcome.welcomeqqqqq'), ((b'\\HasNoChildren',), b'.', 'welcome.welcomeqqqqq.downunder'), ((b'\\HasNoChildren',), b'.', 'test2'), ((b'\\HasNoChildren',), b'.', 'Arunnnnnnnnn')]
Здесь welcome
- имя папки.
И HasChildren
означает, что у папки есть дочерний элемент. welcome.welcomeqqqqq
это дети welcome
. Родитель и ребенок разделены точкой.
Я хочу рекурсивно сформировать древовидный формат из списка папок.
Ожидаемый результат:
[
{
"folder": "Top",
"parent": "None",
"children": [
{
"folder": "Folder 1",
"parent": "Top",
"children": [
{
"folder": "Sub Folder 1",
"parent": "Folder 1",
"children": []
},
{
"folder": "Sub Folder 2",
"parent": "Folder 1",
"children": [
{
"folder": "Sub Folder Sub Folder 1",
"parent": "Sub Folder 2",
"children": []
},
{
"folder": "Sub Folder Sub Folder 2",
"parent": "Sub Folder 2",
"children": []
}
]
}
]
},
{
"folder": "Folder 2",
"parent": "Top",
"children": []
}
]
}
]
Любая помощь будет оценена.