У меня есть структура данных lxml.objectify
, которую я получаю от веб-службы RESTful. Мне нужно изменить настройку, если она существует, и создать ее, если ее нет. Прямо сейчас у меня есть что-то вроде следующего, но я чувствую, что это уродливо. Структура, которую я ищу, имеет список подэлементов, которые имеют одинаковую структуру, поэтому, к сожалению, я не могу просто искать конкретный тег.
thing_structure = lxml.objectify(get_from_REST_service())
found_thing = False
if thing_structure.find('settings') is not None:
for i, foo in enumerate(thing_structure.settings):
if foo.is_what_I_want:
modify(thing_structure.settings[i])
found_thing = True
if not found_thing:
new = lxml.etree.SubElement(thing_structure, 'setting')
modify(new)
send_to_REST_service(thing_structure)