将平面数据转换为分层python列表

问题描述:

我有我的数据库中的数据模型。这是一个按左值排序的扁平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"] 
      ] 
    ], 
] 
+4

请给输入和输出的自洽的例子 - 你的榜样输出具有“pygame的”条目这是** **无处您输入例,有哪一个程序可能弥补? – 2009-11-16 04:51:07

+0

你说“按左值排序”,似乎不是,最左列(id),无论如何,行之间的关系如何表示,否则没有办法构建一个嵌套列表 – 2009-11-16 05:06:31

这是一种改性预购树遍历。

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'] 
      ]], 
     ]], 
]