我需要從結構中提取數據並將其放入列表中,但我不知道結構有多少層。當我不知道有多少級別的數據時,如何循環遍歷數據結構的所有級別來提取所有數據?
對於每一個層面,我可以打電話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的,我會用從獲得數據結構到我的列表。我需要一種自我延續的循環,但我不能想出一個好的解決方案。
任何東西指向我在正確的方向嗎?我確信對於這種我完全不知道的東西有一些很好的理論,但會很樂意閱讀。
有嗎? XML是一棵樹。雖然如果你有一個XSD,你會知道哪些節點可能有孩子,有多少(即使「無數」是無界的)。 –
@Thomas Owens:解析它我的意思是不必編寫算法來自己解析它... –
啊,一個內置的迭代器。多美好:p。感謝這些鏈接,我將閱讀所有鏈接。乾杯。 – user116170