在任何树节点中处理数据

时间:2019-03-02 11:22:40

标签: python anytree

我希望你们一切都好。 我想操纵任何树(python library)节点中的数据
我将字典存储在节点中,并希望从节点中获取值并对其进行操作。

我的代码:

data={
            "man":False,
           "goat":False,
           "lion":False,
           "grass":False
          }
udo = Node(data)
print (udo)


print (udo["man"]) 

结果:

Node("/{'man': False, 'goat': False, 'lion': False, 'grass': False}")

现在我是否要用Dictionary的索引调用对象。它将生成错误。 错误!

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-2d29abc19bbb> in <module>()
      8 print (udo)
      9 
---> 10 print (udo["man"])

TypeError: 'Node' object is not subscriptable

我阅读了python any-tree文档,但没有找到任何帮助。

2 个答案:

答案 0 :(得分:0)

哦!我现在更仔细地阅读了任何树文档之后。这是通过功能名称完成的,该功能名称是节点的功能,并且给出与您分配给节点的名称相同的值(数据,数据结构等)。 码:     数据= {                 “ man”:错,                “山羊”:错误,                “狮子”:假,                “草”:False               }     udo =节点(数据)     打印(伪)

print(udo.name["man"])

结果:

Node("/{'man': False, 'goat': False, 'lion': False, 'grass': False}")
Udo Man is False

答案 1 :(得分:0)

我认为AnyNode是您要寻找的

from anytree import AnyNode
data = {
    "man": False,
    "goat": False,
    "lion": False,
    "grass": False
}
a = AnyNode(**data)
print(a)
AnyNode(goat=False, grass=False, lion=False, man=False)
print(a.man)
False