Разбор XML и написать CSV с заголовками столбцов
Я пытаюсь проанализировать 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()
Я не уверен, что этот код элегантный, но он работает.
144 300000864 201701080100 -4.2
144 300000864 201701080200 -4.5
144 300000864 201701080300 -4.8
144 300000864 201701080400 -5.5
...
но я не знаю, как добавить заголовки к столбцам.
1 ответ
Откройте файл перед циклом 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()