Leggi i valori dal file yaml

Leggi i valori dal file yaml
Yaml è un linguaggio popolare di serializzazione dei dati sviluppata per la leggibilità e l'interazione umana. Yaml è uno strumento potente che offre molte funzionalità e flessibilità, rendendolo una buona scelta quando si lavora con i file di configurazione.

Questo tutorial coprirà come lavorare con Yaml e un popolare linguaggio di scripting, Python. Python è un grande linguaggio utilizzato in molte aree, inclusa l'automazione (come Ansible), dove i file Yaml trovano un uso pesante. Pertanto, la capacità di lavorare con Yaml e Python è un grande vantaggio.

Prerequisiti

Prima di iniziare il tutorial principale, dovrai soddisfare i seguenti requisiti.

  • Python3 installato
  • In grado di lavorare con i file yaml
  • Alcune conoscenze nella programmazione Python.

Installazione di Pyyaml

Per lavorare con i file Yaml in Python, useremo il pacchetto Pyyaml, un parser Yaml e un emettitore per Python Language. È altamente flessibile e può applicarsi a varie attività come file di configurazione, serializzazione dei dati e altro ancora.

Per installare Pyyaml ​​sulla macchina, utilizzare PIP come mostrato nel comando seguente:

PIP3 Installa Pyyaml

Come leggere un file yaml in python

A fini illustrativi, userò un pubsec.file yaml disponibile nel linguaggio di programmazione DART. I contenuti del file YAML sono di seguito:

Nome: newtify
Versione: 1.2.3
Descrizione:>-
Sei stato trasformato in un newt? Vorresti essere?
Questo pacchetto può aiutare. Ha tutto il
funzionalità di Newt-Transmogrification che stavi cercando
per.
Homepage: https: // Esempio-pet-store.com/newtify
Documentazione: https: // Esempio-pet-store.com/newtify/docs
ambiente:
SDK: '> = 2.10.0 <3.0.0'
Dipendenza:
efts: ^2.0.4
Transmogrifica: ^0.4.0
dev_dipendencies:
Test: '> = 1.15.0 <2.0.0'

Credito: Dart Development Team - https: // dart.Dev/Tools/Pub/PubSpec

Una volta che il file ha modificato e salvato, possiamo usare Python per leggere i valori memorizzati nel file.

Il primo passo è importare il pacchetto YAML come:

>>> Importa yaml

Successivamente, dobbiamo caricare il file YAML utilizzando la funzione Safe_load disponibile nel pacchetto PyyAML.

>>> con aperto ("PubSec.yaml ”) come f:
pubsec = yaml.Safe_load (f)
restituire pubsec

Il passaggio finale è mettere insieme il codice. Il codice completo è come mostrato di seguito:

Importa yaml
def main ():
con aperto ("campione.yml ") come f:
pubsec = yaml.Safe_load (f)
restituire pubsec
read_yaml = main ()
Stampa (read_yaml)

Dal codice sopra, iniziamo importando il pacchetto YAML. Creiamo quindi una funzione principale (qualsiasi nome funziona) e impostiamo la logica per la lettura del file yaml.

Una volta che il file è aperto e letto, chiamiamo la funzione principale. In questa fase, il file Yaml viene convertito in un dizionario Python.

Se eseguiamo il codice, otteniamo l'output:

'name': 'newtify', 'versione': '1.2.3 ',' Descrizione ':' Sei stato trasformato in un newt? Vorresti essere? Questo pacchetto può aiutare. Ha tutta la funzionalità di trasformi di transmogrificazione che stavi cercando.',' homepage ':' https: // esempio-pet-store.com/newtify "," documentazione ":" https: // esempio-pet-store.com/newtify/docs ',' ambiente ': ' sdk ':'> = 2.10.0 <3.0.0', 'dependencies': 'efts': '^2.0.4', 'transmogrify': '^0.4.0', 'dev_dependencies': 'test': '>= 1.15.0 <2.0.0'

Questo non è molto leggibile; È possibile utilizzare un pacchetto come Pretty Print per abbellire il dizionario mostrato sopra come:

Importa yaml
importare pprint
def main ():
con aperto ("campione.yml ") come f:
pubsec = yaml.Safe_load (f)
restituire pubsec
read_yaml = main ()
pprint.pprint (read_yaml)

Questo scaricherà il contenuto come:

'dipendenze': 'efts': '^2.0.4 ',' transmogrifica ':'^0.4.0 ',
'Descrizione': 'Sei stato trasformato in un Newt? Vorresti essere? Questo '
'Il pacchetto può aiutare. Ha tutto il Newt-transmogrification '
«Funzionalità che stavi cercando.',
'dev_dipendencies': 'test': '> = 1.15.0 <2.0.0',
'Documentazione': 'https: // Esempio-pet-store.com/newtify/docs ',
'Environment': 'sdk': '> = 2.10.0 <3.0.0',
'homepage': 'https: // esempio-pet-store.com/newtify ',
'Nome': 'newtify',
'versione': '1.2.3 '

Ora è più leggibile di prima.

Come leggere i valori dal file yaml

Per leggere i valori dal file YAML sopra, tutto ciò che dobbiamo fare è accedere ai dati utilizzando la chiave del dizionario.

Ad esempio, per leggere il valore della chiave ambientale, utilizziamo:

>>> stampa (read_yaml ['ambiente'])

Questo ci darà il valore memorizzato nella chiave "ambiente" del dizionario Read_yaml. Come mostrato di seguito:

'sdk': '> = 2.10.0 <3.0.0'

L'output sopra è un dizionario nidificato; Possiamo ottenere il valore effettivo andando oltre il dizionario come:

print (read_yaml ['ambiente'] ['sdk'])

Questo stamperà il valore effettivo come:

> = 2.10.0 <3.0.0

Conclusione

Questo tutorial ti ha mostrato come leggere i file YAML in Python e leggere i valori specifici di un file. Questo è molto utile quando hai bisogno di un valore specifico da un file YAML per eseguire alcune operazioni,

Grazie per la lettura e la codifica felice!