Created
February 4, 2021 17:26
-
-
Save pmarkun/3ea9330053a7996d229f546794fc1429 to your computer and use it in GitHub Desktop.
despesas.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# References | |
# https://www.al.sp.gov.br/repositorioDados/docs/deputados/despesas_gabinetes.pdf | |
# https://medium.com/analytics-vidhya/converting-xml-data-to-csv-format-using-python-3ea09fa18d38 | |
# Importa a função ElementTree da lib XML que processa XML | |
from xml.etree import ElementTree | |
# Importa a lib que salva CSV | |
import csv | |
# Abre o arquivo XML | |
caminho = '/caminho/para/despesas_gabinetes.xml' | |
with open(caminho, 'r') as arquivo: | |
# Transforma o XML em um objeto pythonico | |
tree = ElementTree.parse(arquivo) | |
# Cria uma lista para armazenar as despesas | |
despesas = [] | |
# Itera entre todas os itens <despesa> no arquivo. | |
for d in tree.findall(".//despesa"): | |
despesa = {} #cria um dicionario para armazenar os dados | |
for item in d.iter(): #itera entre todos os itens dentro de uma <despesa> | |
despesa[item.tag] = item.text #cria uma entra no dicionario | |
despesas.append(despesa) #Adiciona o item ao dicionario | |
# Abre um arquivo para gravar os resultados | |
caminho_arquivo_final = '/caminho/para/despesas_gabinetes.csv' | |
with open(caminho_arquivo_final, 'w') as final: | |
f = csv.DictWriter(final, fieldnames=despesas[0].keys()) # Cria o objeto DictWriter e passa os campos da primeira linha como cabeçalho | |
f.writeheader() #escreve cabeçalho | |
f.writerows(despesas) #escreve todos os itens da lista |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment