我有以下功能,能源部的映射lxml的对象字典的基本工作...我如何映射到字典而不是列表?
from lxml import etree
tree = etree.parse('file.xml')
root = tree.getroot()
def xml_to_dict(el):
d={}
if el.text:
print '***write tag as string'
d[el.tag] = el.text
else:
d[el.tag] = {}
children = el.getchildren()
if children:
d[el.tag] = map(xml_to_dict, children)
return d
v = xml_to_dict(root)
在它给我的那一刻....
>>>print v
{'root': [{'a': '1'}, {'a': [{'b': '2'}, {'b': '2'}]}, {'aa': '1a'}]}
但我想....
>>>print v
{'root': {'a': ['1', {'b': [2, 2]}], 'aa': '1a'}}
我该如何重写函数xml_to_dict(EL),以便我得到所需的输出?
这里是我解析的xml,为了清晰起见。
<root>
<a>1</a>
<a>
<b>2</b>
<b>2</b>
</a>
<aa>1a</aa>
</root>
谢谢:)
使用词典将只允许与主要a或b元素你怎么想的是 - 即最佳展示一下您所需的输出 – Mark 2010-11-06 11:10:41
已经改写问题,包括需要输出 - 感谢马克 – significance 2010-11-06 11:28:24