我需要从结构中提取数据并将其放入列表中,但我不知道结构有多少级别。
对于每个级别,我可以调用level.children()
,如果当前级别之下没有级别,则返回[]
,如果有,则返回[object, object, ...]
,每个级别我可以再次致电children()
。
我需要向下钻取整个结构,直到我将所有级别的数据提取到列表中。
基于这样的结构:
<name>John Smith</name>
<team link="http://teamwebsite.com">
<name>Team Name</name>
</team>
<games>
<location>
<venue>A stadium</venue>
</location>
</games>
列表应如下所示:
[
[
{'name': 'name', 'attrs': {}, 'text': 'John Smith', 'parent': None},
],
[
{'name': 'team', 'attrs': {'link': 'http://teamwebsite.com'}, 'text': '', 'parent': None},
{'name': 'name', 'attrs': {}, 'text': 'Team Name', 'parent': 1}, # the reference to its parent's position in the list
],
[
{'name': 'games', 'attrs': {}, 'text': '', 'parent': None},
{'name': 'location', 'attrs': {}, 'text': '', 'parent': 1},
{'name': 'venue', 'attrs': {}, 'text': 'A stadium', 'parent': 2},
],
]
我正在试图找出我用来从数据结构到我的列表的Python。我需要一种自我延续的循环,但我无法想出一个好的解决方案。
有什么能指引我正确的方向吗?我确信这种事情有一些很好的理论,我完全不知道,但很乐意阅读。