将扁平数据转换为层级Python列表
我有一个来自数据库的数据模型。这是一个按左值排序的平面 Python 列表。
> id name left right
> 1 Beginning 1 6
> 2 FOO 2 5
> 3 BAR 3 4
> 4 Programming 6 13
> 5 Python 7 8
> 7 C# 9 12
> 8 XNA 10 11
> 6 About 14 15
我想把这个列表转换成一个层级的 Python 列表,然后再把它转换成 HTML/XML 格式的无序列表。这个 Python 列表将会是一个包含列表的列表。
举个例子
categories = [
["programming", [
["Python", ["pygame"]],
["C#", ["XNA"]],
]
],
["FOO", [
["BAR"]
]
],
]
1 个回答
0
这是一个修改过的先序树遍历方法。
http://www.sitepoint.com/print/hierarchical-data-database/
输入看起来像这样,是一个字典的列表。
dbrows = [
{'title': 'Food', 'lft': 1, 'rgt': 18},
{'title': 'Fruit', 'lft': 2, 'rgt': 11},
#etc... etc... from the linked article.
]
使用链接文章中的水果输入。这就是我想要的,按Python列表的方式排序。
tree = [
['Food', [
['Fruit', [
['Red', ['Cherry', 'Strawberry']],
['Yellow', ['Banana']],
]],
['Meat', [
['Beef', 'Pork']
]],
]],
]