Skip to main content
 首页 » 编程设计

python之XML 到 csv(类似)格式

2025年05月04日17telwanggs

我有一个 XML 文件,我想将其转换/导出为 csv(类)格式。

例子:

<root> 
  <child> 
    <Name>John</Name> 
    <Surname>Doe</Surname> 
    <Name>George</Name> 
    <Surname>Washington</Surname> 
  </child> 
</root> 

ATM 我是这样做的(打印是为了调试,还没有完成):

#!/bin/python env 
 
import xml.etree.ElementTree as etree 
 
tree = etree.parse('./foobar.xml') 
root = tree.getroot() 
 
elements = ('Name', 'Surname') 
 
for i in elements: 
  for i in root.iter(i): 
    print(i.text) 

当前输出:

John 
George 
Doe 
Washington 

我希望得到的结果:

John, Doe 
George, Washington 

谁能帮我一下?

非常感谢。

请您参考如下方法:

使用 xpath 和 zip()。

#!python 
 
import xml.etree.ElementTree as etree 
 
root = etree.parse('./foobar.xml').getroot() 
 
for a in zip(root.findall("child/Name"), root.findall("child/Surname")): 
    print(", ".join([x.text for x in a])) 

如果你想用元素的名字来调用 flexible。

#!python 
 
import xml.etree.ElementTree as etree 
 
child = etree.parse('./foobar.xml').getroot().find('child') 
 
elements = ('Name', 'Surname') 
 
for a in zip(*[child.findall(x) for x in elements]): 
  print(", ".join([x.text for x in a]))