Les verdier fra YAML -filen

Les verdier fra YAML -filen
YAML er et populært dataserialiseringsspråk utviklet for menneskelig lesbarhet og samhandling. YAML er et kraftig verktøy som tilbyr mange funksjoner og fleksibilitet, noe som gjør det til et godt valg når du jobber med konfigurasjonsfiler.

Denne opplæringen skal dekke hvordan du jobber med YAML og et populært skriptspråk, Python. Python er et flott språk som brukes på mange områder, inkludert automatisering (for eksempel Ansible), der YAML -filer finner tung bruk. Derfor er evnen til å jobbe med Yaml og Python en stor fordel.

Forutsetninger

Før vi kommer i gang med hovedopplæringen, må du ha følgende krav oppfylt.

  • Python3 installert
  • I en posisjon til å jobbe med YAML -filer
  • Noe kunnskap innen Python -programmering.

Installere pyyaml

For å jobbe med YAML -filer i Python, skal vi bruke Pyyaml ​​-pakken, en YAML -parser og en emitter for Python Language. Det er svært fleksibelt og kan gjelde for forskjellige oppgaver som konfigurasjonsfiler, dataserialisering og mer.

For å installere Pyyaml ​​på maskinen din, bruk PIP som vist i kommandoen nedenfor:

PIP3 installer Pyyaml

Hvordan lese en YAML -fil i Python

For illustrasjonsformål vil jeg bruke en pubsec.YAML -fil tilgjengelig på DART -programmeringsspråket. Innholdet i YAML -filen er nedenfor:

Navn: Newtify
Versjon: 1.2.3
Beskrivelse:>-
Har du blitt omgjort til en Newt? Vil du være?
Denne pakken kan hjelpe. Den har alle
newt-transmogrifiseringsfunksjonalitet du har sett
til.
Hjemmeside: https: // Eksempel-pet-butikk.com/newtify
Dokumentasjon: https: // Eksempel-pet-butikk.com/newtify/docs
miljø:
SDK: '> = 2.10.0 <3.0.0'
Avhengigheter:
EFTS: ^2.0.4
Transmogrify: ^0.4.0
dev_avhengigheter:
Test: '> = 1.15.0 <2.0.0'

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

Når vi har redigert og lagret filen, kan vi bruke Python til å lese verdiene som er lagret i filen.

Det første trinnet er å importere YAML -pakken som:

>>> Importer yaml

Deretter må vi laste inn YAML -filen ved å bruke Safe_load -funksjonen som er tilgjengelig i Pyyaml ​​-pakken.

>>> med åpen (“Pubsec.yaml ”) som f:
PubSec = yaml.Safe_load (f)
Returner pubsec

Det siste trinnet er å sette sammen koden. Den fulle koden er som vist nedenfor:

Importer yaml
def main ():
med åpen ("prøve.yml ") som f:
PubSec = yaml.Safe_load (f)
Returner pubsec
read_yaml = main ()
print (read_yaml)

Fra ovennevnte kode starter vi med å importere YAML -pakken. Vi oppretter en hovedfunksjon (ethvert navn fungerer) og angir logikken for å lese YAML -filen.

Når filen er åpen og lest, kaller vi hovedfunksjonen. På dette stadiet blir YAML -filen konvertert til en Python -ordbok.

Hvis vi kjører koden, får vi utdataene:

'navn': 'newtify', 'versjon': '1.2.3 ',' Beskrivelse ':' Har du blitt omgjort til en ny? Vil du være? Denne pakken kan hjelpe. Den har all den nyutstyrte funksjonaliteten du har lett etter.',' Hjemmeside ':' https: // Eksempel-pet-butikk.com/newtify ',' dokumentasjon ':' https: // Eksempel-pet-butikk.com/newtify/docs ',' miljø ': ' 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'

Dette er ikke veldig lesbart; Du kan bruke en pakke som Pretty Print for å forskjønne ordboken vist ovenfor som:

Importer yaml
Importer pprint
def main ():
med åpen ("prøve.yml ") som f:
PubSec = yaml.Safe_load (f)
Returner pubsec
read_yaml = main ()
Pprint.pprint (read_yaml)

Dette vil dumpe innholdet som:

'avhengigheter': 'efts': '^2.0.4 ',' transmogrify ':'^0.4.0 ',
'Beskrivelse': 'Har du blitt omgjort til en ny? Vil du være? Dette '
'Pakken kan hjelpe. Det har all den nyt-transmogrifiseringen '
'Funksjonalitet du har lett etter.',
'dev_dependencies': 'test': '> = 1.15.0 <2.0.0',
'Dokumentasjon': 'https: // Eksempel-pet-butikk.com/newtify/docs ',
'Miljø': 'Sdk': '> = 2.10.0 <3.0.0',
'Hjemmeside': 'https: // Eksempel-pet-butikk.com/newtify ',
'navn': 'newtify',
'Versjon': '1.2.3 '

Nå er det mer lesbart enn før.

Hvordan lese verdier fra YAML -filen

For å lese verdier fra YAML -filen ovenfor, er alt vi trenger å gjøre å få tilgang til dataene ved å bruke ordboksnøkkelen.

For å lese verdien av miljønøkkelen bruker vi for eksempel:

>>> print (read_yaml ['miljø'])

Det vil gi oss verdien som er lagret i "miljø" -nøkkelen til read_yaml -ordboken. Som vist under:

'sdk': '> = 2.10.0 <3.0.0'

Utgangen over er en nestet ordbok; Vi kan få den faktiske verdien ved å gå videre ordboken som:

print (read_yaml ['miljø'] ['sdk'])

Dette vil skrive ut den faktiske verdien som:

> = 2.10.0 <3.0.0

Konklusjon

Denne opplæringen har vist deg hvordan du kan lese YAML -filer i Python og lese filens spesifikke verdier. Det kommer veldig nyttig når du trenger en spesifikk verdi fra en YAML -fil for å utføre en eller annen operasjon,

Takk for at du leser, og lykkelig koding!