Мне нужно извлечь данные из структуры и поместить их в список, но я не знаю, сколько уровней имеет структура.
Для каждого уровня я могу вызвать 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, который я использовал бы, чтобы перейти от структуры данных к моему списку. Мне нужен своего рода самосохраняющийся цикл, но я не могу найти хорошее решение.
Есть что-нибудь, чтобы указать мне правильное направление? Я уверен, что есть какая-то хорошая теория для такого рода вещей, о которой я совершенно не знаю, но был бы рад прочитать.