我有一个存储URL的字典列表。它只有两个字段,title
和url
。例如:将列表中的一组URL作为树结构来表示
[
{'title': 'Index Page', 'url': 'http://www.example.com/something/index.htm'},
{'title': 'Other Page', 'url': 'http://www.example.com/something/other.htm'},
{'title': 'About Page', 'url': 'http://www.example.com/thatthing/about.htm'},
{'title': 'Detail Page', 'url': 'http://www.example.com/something/thisthing/detail.htm'},
]
但是,我会从这个列表中得到一个树结构。我在寻找这样的事情:
{ 'www.example.com':
[
{ 'something':
[
{ 'thisthing':
[
{ 'title': 'Detail Page', 'url': 'detail.htm'}
]
},
[
{ 'title': 'Index Page', 'url': 'index.htm'},
{ 'title': 'Other Page', 'url': 'other.htm'}
]
]
},
{ 'thatthing':
[
{ 'title': 'About Page', 'url': 'about.htm'}
]
}
]
}
我在第一次尝试将是一堆的环的汤里urlparse,我相信有一个更好更快的方式来做到这一点。
我已经看到人们在SO工作魔术与列表解析,lambda函数等我仍然在找出它的过程。
(对于Django开发:我将使用这个我的Django应用我存储在一个名为Page
模型,它有两个字段name
和title
的URL。)
这似乎只适用于一层深的路径。我应该更加明确。它不适用于像这样的URL:http:// www.example.com/thisthing/thisthing/about.htm。 –
嗨Jro。我无权改变这些模型,所以没有了。这样做的原因是通过JSON返回所有这些记录。你说得对,检查一个节点是否是一个列表来查看它是否是一组页面这一事实是丑陋的,但我没有想到用更好的树格式来表示这样的数据。我回到了尝试将该URL列表转换为示例数据格式的原始问题。我非常感谢你的帮助,但如果你能告诉我如何转换它,这将是一种解脱。我一直在打我的头,但没有运气。谢谢Jro。 –
啊哈。谢谢。 Thaks你Jro。我已经接受了你的答案,但只有一件小事:我怎么能删除所有的空白字典和列表?我需要递归遍历整棵树吗? –