解析xml并编写带有标题列的csv

2024-10-02 08:27:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解析一个包含气象数据的xml文件,并在csv文件中写入一些值。 我不确定这段代码是否优雅,但它确实有效。在

from qgis.PyQt.QtCore import *
import requests
import xml.etree.ElementTree as ET
# url of xml to parse
baseUrl = ('http://www.arpa.veneto.it/bollettini/meteo/h24/img08/0144.xml')
resp = requests.get(baseUrl)
msg = resp.content
tree = ET.fromstring(msg)
for stazione in tree.iter('STAZIONE'):
    idstaz= stazione.find('IDSTAZ').text
    for sensore in stazione.iter('SENSORE'):
      id= sensore.find('ID').text  
      for dati in sensore.iter('DATI'):
        ist = dati.get('ISTANTE') 
        vm = dati.find('VM').text
        f = open('D:/GIS/_Temp/result.csv', 'a')
        print >> f, idstaz, id, ist, vm
        f.close()

我不确定这段代码是否优雅,但它确实有效。在

^{pr2}$

但我不知道如何将标题添加到列中。在


Tags: 文件csv代码textinimportforxml
1条回答
网友
1楼 · 发布于 2024-10-02 08:27:01

在for循环之前打开文件并将头添加到文件

from qgis.PyQt.QtCore import *
import requests
import xml.etree.ElementTree as ET
# url of xml to parse
baseUrl = ('http://www.arpa.veneto.it/bollettini/meteo/h24/img08/0144.xml')
resp = requests.get(baseUrl)
msg = resp.content
tree = ET.fromstring(msg)
f = open('D:/GIS/_Temp/result.cvs', 'a')
f.write('STAZIONE,IDSTAZ,SENSORE,ISTANTE')
for stazione in tree.iter('STAZIONE'):
    idstaz= stazione.find('IDSTAZ').text
    for sensore in stazione.iter('SENSORE'):
      id= sensore.find('ID').text  
      for dati in sensore.iter('DATI'):
        ist = dati.get('ISTANTE') 
        vm = dati.find('VM').text

        print >> f, idstaz, id, ist, vm

f.close()

相关问题 更多 >

    热门问题