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

创建python objectify元素,然后添加属性,python,xml,dictionary,xml-parsing,lxml.objectify,Python,Xml,Dictionary,Xml Parsing,Lxml.objectify,我试图将名为Origin的python类(包含一个字典作为属性)序列化为一个具有lxml objectify的xml。此字典使用每个键的值“default”初始化 class Origin: def __init__(self): dict = {"A":"default", "B":"default" ...} // my dictionnary has 6 keys actually 首先通过解析XML来填充字典。并不是每把钥匙都装满了。例如:dict={A:“你好

我试图将名为Origin的python类(包含一个字典作为属性)序列化为一个具有lxml objectify的xml。此字典使用每个键的值“default”初始化

class Origin:
    def __init__(self):
        dict = {"A":"default", "B":"default" ...} // my dictionnary has 6 keys actually
首先通过解析XML来填充字典。并不是每把钥匙都装满了。例如:
dict={A:“你好”,B:“默认”…}

我想用dictionary作为属性创建我的originxml元素,但我不想使用“default”键

我的解决方案是在以下情况下进行嵌套:

ì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”)
,然后添加我的字典键(如果与“default”不同)

更具活力的东西,比如

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

谢谢

我会过滤字典,只过滤那些不是默认值的值

听写理解功能在这里有很大帮助

例如:

数据={
“A”:“foo”,
“B”:“默认值”,
“C”:“酒吧”,
}
数据={key:key的值,data.items()中的值,如果值!=“default”}
打印(数据)
输出:

{'A': 'foo', 'C': 'bar'}

哦我不知道我能过滤我的字典!非常感谢!:)