自动组织分类法的库

问题描述

我有一个项目列表的以下分类法:

示例:

Item 1['taxonomy'] = 'toys/starwars/yoda/Baby Yoda toy'
Item 2['taxonomy'] = 'toys/starwars/yoda/Baby Yoda toy 10inches'
Item 3['taxonomy'] = 'toys/starwars/luke/Luke Skywalker toy'
Item 4['taxonomy'] = 'cloths/starwars/luke/Luke Skywalker toy'

而且我想自动创建一个具有类似表示的分类“对象”

|_ toys (3)
|     |_
|       starwars (3)
|              |_ yoda
|              |_ luke
|                 ...
|_ cloths (1)
               ...

我必须手动完成还是有任何库/对象可以做到这一点? 谢谢

我不一定想要一棵树!我想组织我的分类并了解分类行为(了解所有文章的结构如何)

如何打印没有最后一个分支的树?

解决方法

您似乎想创建一棵树。 您可以用 anytree 表示您的数据。

from anytree import Node,RenderTree

def parse_taxonomy_path(tx,nodes):
    l = s.split('/')

    parent = l[0]
    nodes[parent] = Node(parent,parent=nodes['root'])
    
    for i in range(1,len(l)):
        name = l[i]
        nodes[name] = Node(name,parent=nodes[parent])
        parent = name
    
    return nodes
    
root = Node('root')
nodes = {'root':root}

nodes = parse_taxonomy_path('toys/starwars/yoda/Baby Yoda toy',nodes)

for pre,_,node in RenderTree(root):
    print("%s%s" % (pre,node.name))
root
└── toys
    └── starwars
        └── yoda
            └── Baby Yoda toy