Yaml safe_load

Yaml safe_load
YAML er et serialiseringsspråk som kan leses av mennesker og ofte brukes til å lagre data og konfigurasjon av filer. Parsing er prosessen med å undersøke den logiske strukturen videre etter å ha lest dataene fra YAML -filen. Når en YAML -fil er analysert i Python, blir innholdet analysert som en ordbok i Python. “.yml ”eller“.YAML ”er de to mulige filutvidelsene for YAML -filene.

Hvorfor bruke Yaml.Safe_load -funksjonen?

Det er mange tilfeller av Pyyaml ​​-applikasjonen der belastningen () brukes i stedet for Safe_load (). Vi holdt med vilje tilbake informasjonen om Load () -funksjonen fra deg til nå. Vi ønsket at de skulle bruke den sikreste teknikken for å analysere YAML med Python fordi de fleste individer har jobber å utføre og har en tendens til å raskt kopiere noen eksempler på koder. Imidlertid, hvis du lurer på hvordan disse to varierer fra hverandre, er den raske versjonen som følger:

Hvis du er kjent med sylteagurk, vil du vite at belastning () også er en svært sterk funksjon. Begge teknikkene er ekstremt utrygge siden de lar en angriper kjøre den vilkårlige koden. Du kan kjøre Python -skriptet, inkludert å ringe OS.Systembibliotek, som kan kjøre hvilken som helst kommando på systemet ditt og serialiserer og deserialiserer de fulle Python -objektene ved å bruke Pyyamls lastfunksjon. Last () -funksjonen er utdatert i de nylige versjonene av Pyyaml. Å bruke den på en utrygg måte vil resultere i en enorm fettvarsel. Siden Safe_load () bare inneholder en del av lastfunksjonen, bør den brukes hvis du behandler de vanlige YAML -filene.

Hvordan du bruker yaml.safe_load -funksjonen i ubuntu

Å bruke YAML i Ubuntu 20.04, vi må installere det først. YAML -data kan analyseres av en rekke Python -biblioteker. Det mest populære og omfattende rammeverket for å analysere YAML er Pyyaml. Du må bruke PIP for å installere Pyyaml ​​fordi den ikke er en komponent i standard Python -biblioteket. Installer Pyyaml ​​ved å kjøre følgende kommando:

Eksempel 1: Bruke Safe_load -funksjonen for å lese og analysere en YAML -fil

Etter å ha installert Python og de nødvendige bibliotekene, oppretter vi to filer ( .py -fil og .YML -fil) for å demonstrere hvordan vi kan analysere en YAML -fil i Python. La oss lage en ".py ”-filen og navngi den som“ Hei.py ”og YAML -filen som“ Config.yaml ”.

Som det ble sett i forrige bilde, opprettet vi en YAML -fil med en URL, portnummer og en vektor med jevnt tall. Importer nå modulen som vist i det følgende for å bruke pyyaml ​​i skriptene dine. Husk at du bare importerer “YAML” og ikke “Pyyaml”:

For å utføre dette, får vi tilgang til mappen der filene våre er lokalisert. Etter å ha nådd mappen, skriver vi Python3 sammen med navnet på filen med utvidelsen.

Denne konfigurasjonsfilen kan lastes, analyseres og brukes på en måte som er veldig identisk med å laste JSON ved hjelp av Python JSON -pakken. Først åpner vi filen. Yaml.Safe_load () -funksjonen brukes deretter til å analysere den. Vær oppmerksom på at vi endret resultatet for å forbedre lesbarheten for deg litt.

Eksempel nr. 2: Leser .YML -fildata fra en YAML -fil i Python

For å analysere denne filen i dette eksemplet, oppretter vi først en YAML/YML -fil som heter “Studenter.YML ”med følgende informasjon:

Etter å ha opprettet “.yml ”-fil, vi skriver følgende Python -skript for å lese“ Studentene.yml ”fil sortert innhold avhengig av tastene. Skriptet benyttet Safe_load () -funksjonen for å lese hele innholdet i “Studenten.yml ”-fil. Utgangen til denne metoden er en liste over ordbøker i Python som representerer innholdet i filen. Listen blir deretter transformert til en YAML -strøm ved bruk av dump () -metoden som siden er skrevet ut.

For å utføre dette skriptet, skriver vi Python3 sammen med navnet på filen med utvidelsen.

Utgangen vist etter å ha kjørt det nevnte skriptet er som følger. Hver ordbok i Python -listen over ordbøker som ble opprettet etter å ha konvertert innholdet i “Studentene.yml ”-fil til YAML -medlemmene er konvertert. Standardinnstillingen for sorteringsnøkkelparameteren til Dump () -metoden er sann. I lys av tastene viser utgangen det sorterte YAML -innholdet.1

Eksempel nr. 3: Å lese verdiene og nøklene fra .YML -fil

I dette eksemplet bruker vi de samme tidligere filene (hei.PY og studenter.yml). Funksjonen () -funksjonen brukes til å lese tastene og deres relaterte verdi etter at filens innhold er lastet inn i lesevariabelen. Nøkkelverdiparene ble skrevet ut ved hjelp av en nestet "for" -sløyfe som er iterert over hele innholdet i filen.

Dette skriptet genererer resultatene som følger:

Etter å ha kjørt det nevnte skriptet, vises utdata. Skriptet bruker ikke dump () -funksjonen, og derfor er ikke innholdet i filen blitt sortert.

Eksempel 4: Leser .YML -fildata i listen over ordbøker

YAML -filens innhold blir forvandlet til en liste over ordbøker i Python ved hjelp av Safe_load () -metoden. Dataene kan også lastes fra de upålitelige kildene ved hjelp av denne teknikken. For å laste inn YAML -filinnholdet ved hjelp av Safe_load () -metoden og skrive ut det lastede innholdet, oppretter du en Python -fil som inneholder følgende skript:

Det forrige skriptet konverterer dataene til “.yml ”-fil til en liste over ordbøker.

Som du kan se, etter å ha kjørt det nevnte skriptet, er dataene om ".YML ”-fil (som inneholder dataene til studentene) konverteres til en liste over ordbøker. Resultatet inneholder en liste over alle tilgjengelige ordbøker.

Konklusjon

Denne artikkelen demonstrerte flere metoder for å lese YAML -innholdet fra filene og Python -objektene ved å bruke de forskjellige eksemplene. I dette innlegget diskuterte vi YAML-filene og de forskjellige metodene for å analysere dem ved å bruke Safe_load () som er en innebygd funksjon av YAML. I eksemplene på denne opplæringen prøvde vi å lære deg hvordan du kan lese og analysere en ".yml ”-fil, leser verdiene og tastene fra en“.yml ”-filen og konvertere“.yml ”fildata til en liste over ordbøker ved hjelp av Safe_load () -funksjonen.