我有一個存儲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。我已經接受了你的答案,但只有一件小事:我怎麼能刪除所有的空白字典和列表?我需要遞歸遍歷整棵樹嗎? –