我正在尝试将一个名为 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:"hello", B:"default" ...}
我想用我的字典作为属性创建我的 Origin XML 元素,但我不想拥有“默认”键。
我的解决方案是嵌套 if:
ì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")
,然后添加我的字典键?
更有活力的东西,比如
for key in self.dict:
if(self.dict[key] != "default"):
origin.addAttribute(key=self.dict[key])
谢谢