Python 如何在任意树中指定子级并打印树

Python 如何在任意树中指定子级并打印树,python,Python,我正试图使用维基百科的部分打印一棵树,但我不知道如何在任何树中指定子节点。这是我到目前为止试过的 import wikipediaapi from anytree import Node, RenderTree, DoubleStyle wiki_wiki = wikipediaapi.Wikipedia('en') main_page = wiki_wiki.page('Stack_Overflow') sections = main_page.sections print(RenderTr

我正试图使用维基百科的部分打印一棵树,但我不知道如何在任何树中指定子节点。这是我到目前为止试过的

import wikipediaapi
from anytree import Node, RenderTree, DoubleStyle
wiki_wiki = wikipediaapi.Wikipedia('en')
main_page = wiki_wiki.page('Stack_Overflow')
sections =  main_page.sections
print(RenderTree(sections))
但是我得到了这个错误

Traceback (most recent call last):
  File "so.py", line 6, in <module>
    print(RenderTree(sections))
  File "/usr/lib/python3.4/site-packages/anytree/render.py", line 292, in __str__
    lines = ["%s%r" % (pre, node) for pre, _, node in self]
  File "/usr/lib/python3.4/site-packages/anytree/render.py", line 292, in <listcomp>
    lines = ["%s%r" % (pre, node) for pre, _, node in self]
  File "/usr/lib/python3.4/site-packages/anytree/render.py", line 272, in __next
    children = node.children
AttributeError: 'list' object has no attribute 'children'

我希望它尽可能深入

我认为您需要仔细检查,并在
anytree
类中完成一两个示例。此类使用其自定义的树结构,但是
是一个简单的列表,不适合显示到
渲染树
。我用一些简单的
print
命令检查了您的界面:

sections =  main_page.sections
print(type(sections), len(sections))
print("\n------------ sections -----------\n", sections)
render = RenderTree(sections)
print(type(render))
print("\n------------ final print -----------\n")
print(render)
print("\n------------ final print done -----------\n")
输出:

<class 'list'> 7

------------ sections -----------
 [Section: History (1):
The website was created
...
]
<class 'anytree.render.RenderTree'>

------------ final print -----------

Traceback (most recent call last):
...
7
------------部分-----------
[章节:历史(1):
该网站已创建
...
]
------------最终印刷品-----------
回溯(最近一次呼叫最后一次):
...

您的列表输入没有任何树所期望的
节点
结构。

对于python问题,始终使用泛型[python]标记。如果相关,请使用特定于版本的标记。@juanpa.arrivillaga我才刚开始使用python,以后会记住,非常感谢您的输入,在这种情况下,anytree对我来说不是必须的,我想任何其他库都可以使用,但我不确定是哪一个,如果您知道如何打印我要求的结构,请分享,我将继续关注对非现场资源的引用通常不在堆栈溢出的范围内——但我不介意您在问题的正常流程中提出这一问题。我将通过编写自己的解析和提取代码来处理这个问题,查找
部分:
标题、后面的
级别
,以及非常有用的
小节(n):
计数器(
n
是该级别上紧接着的小节数)。
<class 'list'> 7

------------ sections -----------
 [Section: History (1):
The website was created
...
]
<class 'anytree.render.RenderTree'>

------------ final print -----------

Traceback (most recent call last):
...