问题描述
示例:
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