【发布时间】:2014-10-28 13:15:18
【问题描述】:
所以我的情况如下。我有一本字典(如下所示),我想通过可能的大量迭代对其进行迭代,而不必手动定义“for i in dictionary[x][y][...]”。我打算遍历每一层并为其他目的创建一大串 html。对于我的字典,可能存在未知数量的子文件夹和文件,这使得迭代变得非常困难。
这是我的字典
{'A Folder': {
'Another Folder': {
'Stacked_File': 'secretid'
'Another Stacked_File': 'anothersecretid'
}
}, 'Another File':'moreids'...
}
我希望转换成...
<ul>
<ul>
<i class="fi-folder"></i> A_Folder
</ul>
<br>
<ul>
<i class="fi-folder"></i> Another_Folder
<ul>
<ul>
<i class="fi-folder"></i> Folder_Stacked
<ul>
<ul><i class="fi-page"></i> Stacked_File
<ul><i class="fi-page"></i> Another_Stacked_File
</ul>
</ul>
</ul>
</ul>
我该怎么做呢?
【问题讨论】:
-
检查类型并递归执行
-
可悲的是,我不完全确定我会如何做到这一点@marcadian。您知道我可以对其进行进一步研究的任何链接/来源吗?
-
您的示例是关于文件系统的,如果您实际上是在这些文件所在的系统上运行此代码,您应该能够使用 os.listdir( ) 和 os.path.isdir()
-
您的示例 HTML 似乎是错误的(
<i>没有内容的标签,<ul>未封闭的标签,在某些情况下也应该是<li>)和 更重要的是 它与嵌套的dict结构没有任何明显的对应关系:例如,HTML 版本中的'Another File'发生了什么?您应该更正所需的输出,因为它与输入不一致。
标签: python dictionary iteration