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