创建python objectify元素,然后添加属性

问题描述 投票:0回答:1

我正在尝试将包含字典作为属性的名为Origin的python类序列化为带有lxml objectify的xml。该字典用每个键的值“默认”初始化。

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"]...)

但是,如果您拥有一个或两个以上的键,那么这是一个难看且不切实际的解决方案。

是否有一种方法可以创建我的Element origin = objectify.Element("Origin"),然后添加我的字典键'(如果它与“默认”不同)?

更具动态性,例如

for key in self.dict:
    if(self.dict[key] != "default"):
        origin.addAttribute(key=self.dict[key])

谢谢

我正在尝试将包含字典作为属性的名为Origin的python类序列化为带有lxml objectify的xml。该字典用每个键的值“ default”初始化。 ...

python xml dictionary xml-parsing lxml.objectify
1个回答
0
投票

我将字典过滤为仅包含"default"以外的值。

© www.soinside.com 2019 - 2024. All rights reserved.