我有以下功能,能源部的映射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