代码之家  ›  专栏  ›  技术社区  ›  YQ.Wang

如何使用Python将简单的XML转换为CSV?

  •  0
  • YQ.Wang  · 技术社区  · 7 年前

    这是我的XML文件 test.xml :

    <nodes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/nodes_file.xsd">
        <node id="0" x="0.0" y="0.0" type="traffic_light"/> 
        <node id="1" x="0.0" y="500.0" type="priority"/> 
        <node id="2" x="500.0" y="0.0" type="priority"/> 
        <node id="3" x="0.0" y="-500.0" type="priority"/>
        <node id="4" x="-500.0" y="0.0" type="priority"/>
    
    </nodes>
    

    我想将其转换为包含以下列的CSV文件: id, x, y, type . 所以应该是这样的:

    id,x,y,type
    0,0.0,0.0,traffic_light
    1,0.0,500.0,priority
    2,500.0,0.0,priority
    3,0.0,-500.0,priority
    4,-500.0,0.0,priority
    

    我怎么能通过Python实现呢?感谢您的关注!

    1 回复  |  直到 7 年前
        1
  •  1
  •   napuzba    7 年前

    使用 xml.etree.ElementTree csv 模块:

    import xml.etree.ElementTree as et
    import csv
    
    tree = et.parse('node.xml')
    nodes = tree.getroot()
    with open('node.csv', 'w') as ff:
        cols = ['id','x','y','type']
        nodewriter = csv.writer(ff)
        nodewriter.writerow(cols)
        for node in nodes:
            values = [ node.attrib[kk] for kk in cols]
            nodewriter.writerow(values)