Hvordan lese YAML -fil i Python

Hvordan lese YAML -fil i Python

Den fulle formen for YAML er nok et påslagsspråk. Dette filformatet er veldig populært nå for å lagre serialiserte data som er lesbar. Det brukes hovedsakelig til konfigurasjonsfiler, men den kan også brukes til andre formål. Ulike typer skalardata som nummer, streng osv., og sammensatte data som liste, kan ordboken være innholdet i denne filen. Utvidelsen av denne FIE er '.yaml '. Flere moduler finnes i Python for å lese YAML -filen. Bruken av Pyyaml Modul for å lese YAML -filen i Python har vist i denne opplæringen.

Forutsetninger:

Installer Pyyaml ​​-modulen

Pyyaml er den beste modulen Python å lese Yaml fil. Pyyaml Modulen er ikke installert med Python som standard. Så du må installere denne pakken før du sjekker eksemplene på denne opplæringen. Kjør følgende kommando for å installere Pyyaml.

$ pip installer pyyaml

Opprett en YAML -fil

Lag en YAML -fil som heter klient.Yaml Med følgende innhold for å bruke denne filen i neste del av denne opplæringen.

klient.Yaml

- Navn: Kamal Hossain
E -post: [email protected]
Mobil: 01843456790
- Navn: Sakil Aeded
E -post: [email protected]
Mobil: 015662343423
- Navn: Mizanur Rahman
E -post: [email protected]
Mobil: 01936784534

Eksempel-1: Les YAML-innholdet etter å ha konvertert et Python-objekt

Etter å ha installert Pyyaml ​​-pakke, YAML -modulen kan importeres til Python -skriptet for å lese Yaml Innhold ved å konvertere et Python -objekt. De dump () funksjon av Yaml modul brukes til å lage Yaml Innhold ved å serialisere innholdet i Python -objektet. Lag en Python -fil med følgende skript for å generere og skrive ut YAML -strømmen ved å konvertere innholdet i Python -objektet. De dump () funksjon sorterer innholdet i ordboken basert på nøklene som standard.

# Importer YAML -modul
Importer yaml
# Erklære et python -objekt med data
bøker = ['navn': 'Think Python: An Introduction to Software Design', 'Forfatter': 'Allen B. Downey ',' Price ':' 23 ',
'Navn': 'Fluent Python: Clear, Concise and Effection Programming',
'Forfatter': 'Luciano Ramalho', 'Pris': '50',
'Navn': 'Think Python: An Introduction to Software Design',
'Forfatter': 'Allen B. Downey ',' Price ':' 33 '
]
# Konverter og skriv ut JSON -dataene i YAML -strømmen
trykk (yaml.dump (bøker))

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Elementene i hver ordbok for Python -listen har konvertert til hvert medlem av YAML -innholdet. Innholdet i utgangen har sortert basert på ordbokenes nøkler. For dette er verdien av forfatternøkkelen først skrevet ut, og verdien av prisnøkkelen er skrevet ut sist.

Eksempel-2: Les YAML-innholdet fra en YAML-fil

De klient.YAML -fil Opprettet i forrige del av denne opplæringen har blitt brukt i dette eksemplet. Lag en Python -fil med følgende skript for å lese det sorterte innholdet i klient.YAML -fil basert på nøklene. De Last () Funksjon har brukt i skriptet for å lese hele innholdet i klient.YAML -fil. Denne funksjonen vil returnere innholdet i filen som en Python -liste over ordbøker. Neste, The dump () funksjon brukes til å konvertere listen til en YAML -strøm som er skrevet ut senere.

# Importer YAML -modul
Importer yaml
# Last inn YAML -data fra filen
med åpen ('klient.yaml ') som fh:
read_data = yaml.Last (FH, laster = yaml.Fulllaster)
# Skriv ut YAML -data før du sorterer
print (read_data)
# Sorter YAML -data basert på nøkler
sorted_data = yaml.dump (read_data)
# Skriv ut YAML -data etter sortering
print (sorted_data)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Etter å ha konvertert innholdet i klient.YAML -fil I en Python -liste over ordbøker har hver ordbok for Python -listen konvertert til hvert medlem av YAML -innholdet som forrige eksempel. Verdien av sort_key -parameter av dump () funksjon er satt til ekte Som standard. Så utgangen viser den sorterte Yaml Innhold basert på nøklene.

Eksempel-3: Les tastene og verdiene fra en YAML-fil

Lag en Python -fil med følgende skript for å lese og skrive ut tasten og verdien separat fra klient.YAML -fil. Etter å ha lastet inn filens innhold i read_data variabel, de punkt() Funksjonen har brukt til å lese hver tast og den tilsvarende verdien fra innholdet. Den nestede 'til'Loop har brukt til å iterere det fulle innholdet i filen og skrive ut nøkkelverdiparene.

# Importer YAML -modul
Importer yaml
# Last inn YAML -filen
med åpen ('klient.yaml ') som fh:
# Last inn YAML -data fra filen
read_data = yaml.Last (FH, laster = yaml.Fulllaster)
# Itererer sløyfen for å lese og skrive ut YAML -data
for i i rekkevidde (0, len (read_data)):
for nøkkel, verdi i read_data [i].elementer ():
Print (Key, ":", Verdi)
skrive ut(")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Filens innhold er ikke sortert fordi dump () -funksjonen ikke har blitt brukt i skriptet.

Eksempel-4: Les YAML-innholdet i en liste over ordbøker

De safe_load () -funksjon brukes til å konvertere innholdet i YAML -filen til Python -listen over ordbøkene. Denne funksjonen kan også brukes til å laste inn data fra ikke -tillitsfulle kilder. Lag en Python -fil med følgende skript for å laste inn innholdet i en YAML -fil ved hjelp av safe_load () -funksjon og skriv ut det lastede innholdet.

# Importer YAML -modul
Importer yaml
# Last inn YAML -filen
med åpen ('klient.yaml ') som fh:
# Konverter YAML -dataene til en ordbok
Dictionary_Data = YAML.SAFE_LOAD (FH)
# Skriv ut ordboksdataene
Print (Dictionary_Data)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. En liste over ordbøker er skrevet ut i utdataene.

Konklusjon:

Måtene å lese Yaml Innhold fra et Python -objekt og en fil har blitt vist i denne opplæringen ved å bruke forskjellige eksempler. Begrepet analysering av Yaml fil ved hjelp av Pyyaml ​​-pakke vil bli ryddet for Python -brukerne etter å ha praktisert eksemplene på denne opplæringen.