Stack Overflow em Português Asked by Diego Provesi on January 4, 2022
Boa tarde, amigos
Tudo bem?
Estou com um arquivo em XML do qual gostaria de retirar os dados conforme apresentado abaixo e plotar em colunas, não linha a linha como o código está realizando, no caso os dados ficariam lado a lado (horizontal).
tree = ET.parse('/content/drive/My Drive/Python/Download CVM/Extract/DFP/00759520191231401/InfoFinaDFin.xml')
root = tree.getroot()
xml_data_to_csv = open('Out.csv', 'w')
list_head=[]
Csv_writer=csv.writer(xml_data_to_csv)
count=0
for element in root.findall('InfoFinaDFin'):
List_nodes =[]
#Get head by tag
if count == 0:
#get child node
DescricaoConta1 = element.find('DescricaoConta1').text
List_nodes.append(DescricaoConta1)
#Write List_nodes to csv
Csv_writer.writerow(List_nodes)
#close csv file
xml_data_to_csv.close()
Resultado do código apresentado: (Gostaria que ficasse: 1 row x 859 columns)
Você poderia colocar um trecho do XML para facilitar a compreensão.
Da forma que está, você pode tentar simplesmente guardar os valores numa lista e depois escrever num arquivo separados por virgula. Assim ao ler como csv ele estaria como o esperado, com uma linha e 858 colunas:
tree = ET.parse('/content/drive/My Drive/Python/Download CVM/Extract/DFP/00759520191231401/InfoFinaDFin.xml')
root = tree.getroot()
colunas = []
for element in root.findall('InfoFinaDFin'):
DescricaoConta1 = element.find('DescricaoConta1').text
colunas.append(DescricaoConta1)
with open('Out.csv', 'w') as file:
file.write(','.join(colunas))
Answered by Damião Martins on January 4, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP