Я новичок в python, но каким-то образом мне удалось изучить и обновить существующий код.
Основная цель сценария python, который я изменяю, состоит в том, чтобы прочитать xml файл, проанализируйте его и создайте новый json файл. Есть много файлов python, которые используются для анализа. Я не хочу упоминать о каждой вещи здесь. Я скажу, где я получаю проблему.
В файле xml есть элемент, имеющий два одинаковых коротких имени.
![enter image description here](https://i.stack.imgur.com/vi23g.png)
Я хочу добавить элементы пакета в словарь. Поэтому я пытаюсь использовать приведенный ниже python код,
def extract(elem_type, attribute): (in this case, attribute is someip_service_instance_to_machine_mappings)
for element in arxml_element.findall(elem_type.xpath, NS_MAPPING):
getattr(parent_package, attribute).append(elem_type(element, parent_package))
if attribute == 'someip_service_instance_to_machine_mappings':
print("getting parent_package attribute")
print(getattr(parent_package, attribute))
print('\n')
в соответствии с приведенным выше файлом xml, для элемента SOMEIP-SERVICE-INSTANCE-TO-MACHINE-MAPPING есть два коротких имени. Итак, for-l oop должен быть выполнен два раза. который выполняет (ну и хорошо). Но когда я печатаю атрибут, l oop 1-й раз: он создает словарь и помещает в него подпакет. l oop 2-й раз: перезаписывает существующий подпакет. Но я ожидаю добавить это. Ниже приведен вывод консоли
![enter image description here](https://i.stack.imgur.com/BcDS2.png)
Но если я изменю любое из коротких имен SomeipServiceInstanceToMachineMapping на CheckSomeipServiceInstanceToMachineMapping . Затем он добавляется правильно. Ниже выводится консоль после изменения короткого имени:
![enter image description here](https://i.stack.imgur.com/R4Im5.png)
Итак, мой вопрос: как действительно работает метод добавления в этом сценарии? Есть ли альтернатива для добавления, чтобы он мог добавить хотя бы то же короткое имя.
Извините за мой глупый вопрос: (