Convertire un file CSV in XML con Python

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.

Torna su