Я пытаюсь сериализовать класс python с именем Origin, содержащий словарь в качестве атрибута, в xml с l xml objectify. Этот словарь инициализируется значением "default" для каждого ключа.
class Origin:
def __init__(self):
dict = {"A":"default", "B":"default" ...} // my dictionnary has 6 keys actually
Словарь заполняется при первом разборе XML. Не каждый ключ заполнен. Например: dict = {A:"hello", B:"default" ...}
Я хочу создать элемент Origin XML с моим словарем в качестве атрибута, но я не хочу иметь ключи "по умолчанию".
Мое решение заключается во вложении, если:
ìf(self.dict["A"] != "default"):
if(self.dict["B"] != "default"):
...
objectify.Element("Origin", A=self.dict["A"], B=self.dict["B"]...)
Но это уродливое и непрактичное решение, если у вас более одного или двух ключей.
Есть ли способ сначала создать мой элемент origin = objectify.Element("Origin")
, а затем добавить ключи моего словаря ", если они отличаются от" по умолчанию "?
Что-то более динамическое c, например
for key in self.dict:
if(self.dict[key] != "default"):
origin.addAttribute(key=self.dict[key])
Спасибо