【发布时间】:2018-11-06 03:57:50
【问题描述】:
我希望从列表列表中创建一个 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"
}
]
}
]
}
]
}
以此类推,包含未知数量的包含目录路径的列表。 谢谢。
【问题讨论】:
-
你怎么知道什么是文件,什么是目录?
-
它们都是绝对路径吗(即从
root开始)? -
什么是“文件夹”和什么是“文件”由它们在列表中的位置决定。列表中的最后一个值始终是一个文件,并且所有前面的字符串都与文件夹相关。它们都是绝对路径,从root开始。
-
感谢您的解决方案,我会尽快尝试并得到结果。
标签: python json dictionary