La conversione di un file CSV in XML è un'operazione comune quando si lavora con dati strutturati in Python. I file CSV (Comma-Separated Values) sono molto usati per archiviare dati tabellari, mentre XML (eXtensible Markup Language) è ampiamente utilizzato per rappresentare dati gerarchici e strutturati in un formato leggibile da umani e macchine. In questo articolo vedremo come effettuare questa conversione utilizzando Python.
Python offre la libreria csv
per leggere file CSV. Supponiamo di avere un file CSV chiamato dati.csv
con il seguente contenuto:
Nome,Cognome,Età
Mario,Rossi,30
Luigi,Bianchi,25
Anna,Verdi,22
Quindi creiamo il codice principale:
import csv
import xml.etree.ElementTree as ET
def csv_to_xml(csv_file, xml_file):
# Leggi il file CSV
with open(csv_file, mode='r', newline='', encoding='utf-8') as file:
csv_reader = csv.DictReader(file)
# Crea il root dell'XML
root = ET.Element("Dati")
# Itera sulle righe del CSV e crea i nodi XML
for row in csv_reader:
record = ET.SubElement(root, "Record")
for key, value in row.items():
element = ET.SubElement(record, key)
element.text = value
# Scrivi l'XML su file
tree = ET.ElementTree(root)
with open(xml_file, mode='wb') as xml_output:
tree.write(xml_output, encoding='utf-8', xml_declaration=True)
# Esegui la funzione
csv_to_xml("dati.csv", "dati.xml")
Ecco come appare il file dati.xml
:
<?xml version='1.0' encoding='utf-8'?>
<Dati>
<Record>
<Nome>Mario</Nome>
<Cognome>Rossi</Cognome>
<Età>30</Età>
</Record>
<Record>
<Nome>Luigi</Nome>
<Cognome>Bianchi</Cognome>
<Età>25</Età>
</Record>
<Record>
<Nome>Anna</Nome>
<Cognome>Verdi</Cognome>
<Età>22</Età>
</Record>
</Dati>
Conclusione
La conversione da CSV a XML in Python è un processo relativamente semplice grazie alle librerie standard di Python. Con il codice fornito, puoi facilmente trasformare dati tabellari in strutture XML personalizzate per adattarle alle tue esigenze.