Я хочу создать вложенный словарь типа JSON из списка списков. Списки содержали полный путь к каталогу, но я разбил их на отдельные компоненты, так как думал, что это упростит создание вложенных словарей.
Пример списка:
["root", "dir1", "file.txt"]
Ожидаемый результат:
{
"type": "directory",
"name": "root",
"children": [
{
"type": "directory",
"name": "dir1",
"children": [
{
"type": "file",
"name": "file.txt",
}
]
}
]
}
Я пытался использовать рекурсивный метод, но не смог добраться до него (новичок в рекурсивных методах, и моя голова постоянно вращалась). Также попробовал итеративный метод из идеи, которую я нашел здесь (переполнение стека), которая перевернула список и построила диктовку в обратном направлении, что я вроде как заставил работать, но не смог решить одно из требований решения, которое заключается в том, что код может иметь дело с дублированием в частях путей к каталогам, поскольку оно перебирает список списков.
Например, следуя последнему примеру, следующий введенный список выглядит так: -
["root", "dir1", "dir2", "file2.txt"]
и нужно создать словарь JSON, чтобы получить следующее: -
{
"type": "directory",
"name": "root",
"children": [
{
"type": "directory",
"name": "dir1",
"children": [
{
"type": "file",
"name": "file.txt",
}
{
"type": "directory",
"name": "dir2",
"children": [
{
"type": "file",
"name": "file2.txt"
}
]
}
]
}
]
}
и т. Д. С неизвестным количеством списков, содержащих пути к каталогам.
Спасибо.