я создаю функцию, которая будет обрабатывать XML-данные, данные могут отличаться, но структура та же:
события (как список) информация о событии дополнительная информация
функцию необходимо создатьсловарь, который содержит сопоставление, в котором, если зацикливаемые данные не равны 0, тогда данные должны отображаться в словаре, вот мое решение:
def parse_items(self, xml):
""" Builds a dynamic dictionary tree wich holds each event in a dictionary
that can be accessed by number of event """
parsed_items = {}
parsed_item = {}
sub_info = {}
for num, item in enumerate(xml):
for tag in item:
if len(tag) != 0:
for info in tag:
sub_info[info.tag] = info.text
parsed_item[tag.tag] = sub_info
# Need to flush the dictionary else it will repeat info
sub_info = {}
else:
parsed_item[tag.tag] = tag.text
parsed_items[num] = parsed_item
# Need to flush the dictionary else it will repeat info
parsed_item = {}
return parsed_items
мой вопрос, есть ли способ сделатьэто динамически без необходимости создавать циклы for для каждого уровня данных?