logo

Parsējiet YAML failu programmā Python

YAML ir saīsinājums no Yet Another Markup Language jeb YAML nav iezīmēšanas valoda, kas ir datu formāts, ko izmanto datu apmaiņai. YAML var saglabāt tikai datus un bez komandām. Tas ir līdzīgs XML un JSON datu formātiem. Šajā rakstā mēs detalizēti iedziļināsimies YAML failu parsēšanas koncepcijā Python, kā arī piemēru.

YAML failu parsēšana programmā Python

PyYAML Python programmēšanas modulis tiek uzskatīts par Python parsētāju. Izmantojot šo bibliotēku, mēs varam veikt dažādas darbības ar YAML failiem, piemēram, lasīt vai rakstīt YAML failus. Serializāciju un noturīgus YAML datus var veikt arī, izmantojot šo PyYAML moduli programmā Python.

Lai izmantotu PyYAML moduli, mums tas ir jāinstalē Python izpildot tālāk norādīto komandu:



pip install pyyaml>

YAML faili tiek saglabāti, izmantojot 2 dažādus paplašinājumus, tas ir, .yaml un .yml . Tā kā mums ir nepieciešams parsēt YAML failu, mēs esam izveidojuši divus YAML failus, kas sastāv no datiem Atslēga: Vērtība pāri. Kā piemēru savam rakstam izmantosim šādus YAML failus.

geeksforgeek.yml

UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills:  -Python  -SQL  -Django  -Javascript>

multi_docs.yml

--- UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills:  -Python  -SQL  -Django  -Javascript ... --- UserName: Google Password: google@123 Phone: 1234567890 Website: google.com Skills:  -Python  -SQL  -Django  -Javascript ... --- UserName: Yahoo Password: yahoo@123 Phone: 1234567890 Website: yahoo.com Skills:  -Python  -SQL  -Django  -Javascript>

Tagad apskatīsim dažas metodes, ar kurām mēs varam parsēt YAML failu Python.

Izmantojot funkciju load()

Funkcija yaml.load() YAML modulī tiek izmantota, lai nolasītu YAML datus vai objektu Python vārdnīca . Var būt YAML dati, kas sastāv no milzīga skaita atslēgu-vērtību pāru (konfigurācijas failu), tāpēc, lai lasītu šos failus, funkcija load() var būt noderīga, jo tā veic YAML datu deserializāciju Python. The Iekrāvējs funkcijas load() parametrs ir iestatīts uz SafeLoader , kas paredz droši ielādēt YAML datus. Tas ir noderīgi gadījumos, kad ievade tiek ņemta no neuzticamiem avotiem.

Python3




atkārtojiet, izmantojot karti java
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)>

>

>

Izvade:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890,  'Website': 'techcodeview.com>

Izmantojot funkciju full_load()

Funkcija yaml.full_load() tiek izmantota, lai parsētu YAML faila saturu atslēgu un vērtību pāru veidā. Pēc tam izmantojiet Python gūt() metodi, mēs varam iegūt konkrētus datus no YAML faila.

Python3




import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.full_load(f)> > # Print the values as a dictionary> output>=> {> >'UserName'>: data.get(>'UserName'>),> >'Password'>: data.get(>'Password'>),> >'phone'>: data.get(>'Phone'>),> >'Skills'>:>' '>.join(data.get(>'Skills'>, []))> }> print>(output)>

>

>

Izvade:

mīlošs krikets
{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'phone': 1234567890,  'Skills': '- P y t h o n - S Q L - D j a n g o - J a v a s c r i p t'}>

Izmantojot funkciju safe_load()

Vēl viens veids, kā ielādēt YAML failu Python, ir izmantot metodi safe_load(). To var izmantot load() metodes SafeLoader parametra vietā, kad dati tiek ielādēti no neuzticama avota.

Python3




import> yaml> with>open>(>'geeksforgeeks.yml'>) as f:> >dict> => yaml.safe_load(f)> >print>(>dict>)>

>

>

Izvade:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890,  'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}>

Izmantojot funkciju load_all()

Metode load_all() tiek izmantota, ja vēlamies ielādēt YAML dokumentu, kas atrodas vienā failā. The Iekrāvējs funkcijas load() parametrs ir iestatīts uz SafeLoader , kas paredz droši ielādēt YAML datus. Tas ir noderīgi gadījumos, kad ievade tiek ņemta no neuzticamiem avotiem.

Python3




import> yaml> from> yaml.loader>import> SafeLoader> # open yaml file in read> with>open>(>'multiple_documents.yml'>,>'r'>) as f:> >yaml_data>=> list>(yaml.load_all(f, Loader>=>SafeLoader))> >print>(yaml_data)>

>

>

Izvade:

[{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890,  'Website': 'techcodeview.com {'UserName': 'Google', 'Password': 'google@123', 'Phone': 1234567890,  'Website': 'google.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'},  {'UserName': 'Yahoo', 'Password': 'yahoo@123', 'Phone': 1234567890,  'Website': 'yahoo.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'}]>