从Python结构构建XML
答
如果您需要一些自定义格式,您可以使用xml.etree.ElementTree
以编程方式生成这样的格式。例如:
from xml.etree import ElementTree
def dict2xml(d, parent=None):
if parent is None:
parent = ElementTree.Element('xml')
for key, value in d.items():
if isinstance(value, str):
element = ElementTree.SubElement(parent, key)
element.text = value
elif isinstance(value, dict):
element = ElementTree.SubElement(parent, key)
dict2xml(value, element)
elif isinstance(value, list):
for text in value:
element = ElementTree.SubElement(parent, key)
element.text = str(text)
else:
raise TypeError('Unexpected value type: {0}'
.format(type(value)))
return parent
d = {'a': 'a contents',
'b': {'c': 'c contents',
'd': 'd contents',
},
'e': range(3),
}
print ElementTree.tostring(dict2xml(d))
生成以下的输出:
<xml><a>a contents</a><b><c>c contents</c><d>d contents</d></b><e>0</e><e>1</e><e>2</e></xml>
字典的这些嵌套列表中包含的价值标签? – Nilesh 2011-12-29 11:05:21
如果您只想保存一些Python对象,请使用pickle。对于任意的Python对象来说,任何完全一般的东西都将最终成为Python特有的,所以你不妨使用pickle。如果你想与其他语言进行互操作,你必须知道你可以支持哪些数据格式(不仅仅是“XML”,而是确切的模式),你需要告诉我们,所以我们可以告诉你哪些也由Python支持。 – delnan 2011-12-29 11:08:29
我需要XML来保存MS Project的数据,并且我正在寻找比原始字符串构建更好的东西。 – Don 2011-12-29 13:58:09