首页 > 解决方案 > 自动组织分类的库

问题描述

对于项目列表,我有以下分类:

例子:

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)
               ...

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

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

如何在没有最后一个分支的情况下打印树?

标签: pythontaxonomy

解决方案


看来您想创建一棵树。您可以使用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

推荐阅读