首页 > 解决方案 > 将具有“孩子”的xml转换为字典

问题描述

我有一个包含子文件的 xml 文件,我想将其转换为字典。

<people>
 <type>
  <name>lo_123</name>
  <country>AUS</country>
  <note>
     <name>joe</name>
     <gender>m</gender>
     <age>26</age>
     <spouse>
         <name>lisa</name>
         <gender>f</gender>
     </spouse>     
  </note>
 </type>
</people>

这是我的转换代码

import xml.etree.cElementTree as ET

xml='xmltest.xml'

crif_tree = ET.parse(xml)
crif_root = crif_tree.getroot()
data = []

for one in crif_root.findall('.//type'):
    reg={e.tag: e.text for e in list(note1)}
    data.append(reg)
for two in crif_root.findall('.//type/note'):
    reg={e.tag: e.text for e in list(note1)}
    data.append(reg)
for three in crif_root.findall('.//type/note/spouse'):
    reg={e.tag: e.text for e in list(note1)}
    data.append(reg)

print(data)

这是输出data

[{'name': 'lo_123', 'country': 'AUS', 'note': '\n     '}, {'name': 'joe', 'gender': 'm', 'age': '26', 'spouse': '\n         '}, {'name': 'lisa', 'gender': 'f'}]

我想要的输出是

[{'name': 'lo_123', 'country': 'AUS', 'note': '\n     ', 'name': 'joe', 'gender': 'm', 'age': '26', 'spouse': '\n         ', 'name': 'lisa', 'gender': 'f'}]

标签: pythonxmldictionaryelementtree

解决方案


推荐阅读