Analizza un file YAML in Python

Rayven Esplanada 10 ottobre 2023
Analizza un file YAML in Python

Questo tutorial mostrerà diversi modi per analizzare un file YAML in Python.

YAML è uno standard di serializzazione dei dati utilizzato come tipo di file per memorizzare i file di configurazione o delle proprietà all’interno di un progetto. YAML spesso sostituisce i tipici file di configurazione XML o JSON perché i file sono più facili da serializzare rispetto a entrambi i tipi di file.

Usa il pacchetto PyYAML per analizzare YAML in Python

pyyaml è un pacchetto Python che fornisce utilità per analizzare e manipolare i file YAML all’interno di Python.

Il primo passo da fare è installare pyyaml usando pip poiché non è immediatamente disponibile per Python.

pip install pyyaml 

Per gli utenti di Python 3.x, usa pip3 invece di pip.

pip3 install pyyaml

A questo punto l’installazione è terminata, procedere con l’analisi di un file YAML di esempio. Un file YAML avrà sempre tre trattini --- all’inizio del file per denotare l’inizio di un nuovo documento YAML.

Nota che gli spazi dovrebbero essere usati esclusivamente quando si indentano i file YAML poiché questi file non riconosceranno gli spazi di tabulazione come rientri.

I file YAML possono avere un’estensione di .yaml o .yml.

  • sample.yaml
---
	name: "John"
	age: 23
	isMale: true
	hobbies:
		- swimming
		- fishing
		- diving

Per leggere il file YAML in Python, importa prima il modulo yaml. Successivamente, apri il file yaml usando la funzione open(). Il modulo yaml ha una funzione predefinita load(), che accetta un file come argomento, carica un file YAML in Python e lo converte in un tipo di dati oggetto Python.

import yaml

with open("sample.yaml", "r") as f:
    print(yaml.load(f))

Se si stampa l’output di yaml.load(), verrà visualizzato il contenuto del file YAML in un formato oggetto Python.

Produzione:

{'name': 'John', 'age': 23, 'isMale': True, 'hobbies': ['swimming', 'fishing', 'diving']}

Per assicurarci che il file YAML esista e non sia danneggiato, sicuro da usare, possiamo aggiungere un blocco try e catturare l’eccezione utilizzando l’oggetto di errore incorporato nel modulo yaml YAMLError. Un altro livello per rendere il codice più sicuro da usare è sostituire la funzione load() con safe_load(), che convalida il file YAML prima di caricarlo.

import yaml

with open("sample.yaml", "r") as stream:
    try:
        print(yaml.safe_load(stream))
    except yaml.YAMLError as exc:
        print(exc)

Questa soluzione ha lo stesso risultato della soluzione precedente, sebbene questo sia un approccio molto più sicuro per analizzare un file YAML in Python.

In sintesi, l’analisi di un file YAML in Python è facilmente realizzabile utilizzando il modulo yaml. Assicurati di eseguire pip install pyyaml prima di usare il modulo poiché non è facilmente integrato.

È sempre buona norma incapsulare le funzioni di manipolazione dei file con blocchi try...except per assicurarsi che la manipolazione dei file avvenga senza intoppi e sia sicura da eseguire.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn