Yaml Safe_load

Yaml Safe_load
YAML è un linguaggio di serializzazione che può essere letto dall'uomo e viene spesso utilizzato per archiviare i dati e la configurazione dei file. L'analisi è il processo per esaminare ulteriormente la struttura logica dopo aver letto i dati dal file YAML. Quando un file Yaml viene analizzato in Python, il suo contenuto viene analizzato come un dizionario in Python. IL ".yml "o".Yaml ”sono le due possibili estensioni dei file per i file YAML.

Perché usare lo yaml.Funzione Safe_load?

Esistono numerosi istanze dell'applicazione Pyyaml ​​in cui il carico () viene utilizzato al posto di Safe_load (). Fino ad ora abbiamo volutamente trattenuto le informazioni sulla funzione load (). Volevamo che utilizzassero la tecnica più sicura per analizzare lo Yaml con Python perché la maggior parte delle persone ha un lavoro da svolgere e hanno la tendenza a copiare frettolosamente incolla alcuni codici di esempio. Tuttavia, se ti stai chiedendo come questi due variano l'uno dall'altro, la versione rapida è la seguente:

Se hai familiarità con Pickle, saprai che load () è anche una funzione molto forte. Entrambe le tecniche sono estremamente non sicure poiché lasciano eseguire un aggressore il codice arbitrario. È possibile eseguire lo script Python, incluso chiamare il sistema operativo.Libreria di sistema, che può eseguire qualsiasi comando sul sistema e serializzare e deserializzare gli oggetti Python completi usando la funzione di carico di Pyyaml. La funzione load () è deprecata nelle versioni recenti di Pyyaml. Usarlo in modo non sicuro comporterà un enorme avvertimento di grasso. Dal momento che safe_load () contiene solo una parte della funzione di carico, dovrebbe essere utilizzato se si sta elaborando i normali file YAML.

Come usare lo yaml.Funzione Safe_load in Ubuntu

Per usare Yaml in Ubuntu 20.04, dobbiamo installarlo prima. I dati YAML possono essere analizzati da una varietà di biblioteche Python. Il quadro più popolare e completo per l'analisi dello Yaml è Pyyaml. È necessario utilizzare il PIP per installare Pyyaml ​​perché non è un componente della libreria Python predefinita. Installa il Pyyaml ​​eseguendo il seguente comando:

Esempio n. 1: utilizzando la funzione Safe_load per leggere e analizzare un file YAML

Dopo aver installato il Python e le librerie richieste, creiamo due file (il .file py e .File YML) per dimostrare come possiamo analizzare un file YAML in Python. Creiamo un ".py "file e chiamalo come" ciao.py "e il file yaml come" config.yaml ".

Come visto nell'immagine precedente, abbiamo creato un file YAML con URL, numero di porta e un vettore di numeri pari. Ora, importa il modulo come mostrato nel seguente per utilizzare il Pyyaml ​​negli script. Tieni presente che importi solo lo "yaml" e non il "pyyaml":

Per eseguire questo, accediamo alla cartella in cui si trovano i nostri file. Dopo aver raggiunto la cartella, scriviamo Python3 insieme al nome del file con l'estensione.

Questo file di configurazione può essere caricato, analizzato e utilizzato in un modo molto identico al caricamento del JSON utilizzando il pacchetto Python JSON. Innanzitutto, apriamo il file. Lo Yaml.La funzione safe_load () viene quindi utilizzata per analizzarla. Si prega di notare che abbiamo leggermente modificato il risultato per migliorare la sua leggibilità per te.

Esempio n. 2: leggere il .Dati del file YML da un file YAML in Python

Per analizzare questo file in questo esempio, creiamo prima un file YAML/YML chiamato "Studenti.YML "con le seguenti informazioni:

Dopo aver creato il ".File YML ", scriviamo il seguente script Python per leggere gli" Studenti.Contenuto ordinato del file YML ”a seconda delle chiavi. Lo script ha utilizzato la funzione Safe_load () per leggere l'intero contenuto dello studente.File YML ". L'output di questo metodo è un elenco di dizionari in Python che rappresenta il contenuto del file. L'elenco viene quindi trasformato in un flusso YAML usando il metodo dump () che da allora è stato stampato.

Per eseguire questo script, scriviamo Python3 insieme al nome del file con l'estensione.

L'uscita mostrata dopo aver eseguito lo script di cui sopra è il seguente. Ogni dizionario nell'elenco Python di dizionari creati dopo aver convertito il contenuto degli "Studenti.Il file YML "nei membri YAML viene convertito. L'impostazione predefinita per il parametro della chiave di ordinamento del metodo dump () è vera. Alla luce dei tasti, l'uscita visualizza il contenuto di yaml ordinato.1

Esempio n. 3: leggere i valori e le chiavi da .File YML

In questo esempio, utilizziamo gli stessi file precedenti (ciao.Py e studenti.YML). La funzione Item () viene utilizzata per leggere le chiavi e il loro valore correlato dopo che il contenuto del file viene caricato nella variabile di lettura. Le coppie di valore chiave sono state stampate utilizzando un ciclo "per" nidificato che ha iterate su tutto il contenuto del file.

Questo script genera i risultati come segue:

Dopo aver eseguito lo script di cui sopra, l'output elencato verrà visualizzato. Lo script non utilizza la funzione dump (), quindi i contenuti del file non sono stati ordinati.

Esempio n. 4: leggere il .Dati del file YML nell'elenco dei dizionari

Il contenuto del file Yaml viene trasformato in un elenco di dizionari in Python usando il metodo Safe_load (). I dati possono anche essere caricati dalle fonti inaffidabili utilizzando questa tecnica. Per caricare il contenuto del file YAML utilizzando il metodo Safe_load () e stampare il contenuto caricato, creare un file Python contenente il seguente script:

Lo script precedente converte i dati di ".File YML "in un elenco di dizionari.

Come puoi vedere, dopo aver eseguito lo script di cui sopra, i dati del ".Il file YML "(contenente i dati degli studenti) viene convertito in un elenco di dizionari. Il risultato contiene un elenco di tutti i dizionari disponibili.

Conclusione

Questo articolo ha dimostrato i molteplici metodi per la lettura del contenuto YAML dai file e dagli oggetti Python usando i vari esempi. In questo post, abbiamo discusso dei file YAML e dei vari metodi per analizzarli usando il sicuro_load () che è una funzione integrata di YAML. Negli esempi di questo tutorial, abbiamo cercato di insegnarti come leggere e analizzare un “.File YML ", leggendo i valori e le chiavi da".File YML "e convertire il".I dati del file YML "in un elenco di dizionari utilizzando la funzione Safe_load ().