Dizionario Pickle in Python

Dizionario Pickle In Python



Pickle può essere utilizzato per pre-elaborare i framework di entità Python che è il processo di conversione di un oggetto dalla memoria in un flusso di byte che può essere salvato su disco come formato binario. Questa procedura è nota come serializzazione. Per fare ciò, usa il metodo pickle dump(). Quando questo record binario viene nuovamente caricato in un programma Python, può essere deserializzato e riconvertito in un oggetto Python utilizzando il metodo pickle load().

Questo articolo ti insegna come archiviare i dati, più specificamente un dizionario, usando il modulo pickle di Python. Per iniziare, dobbiamo procurarci il modulo pickle. Pickle dump() accetta tre parametri. Il primo input specifica i dati da salvare. Il secondo parametro è l'oggetto file che viene restituito quando un file viene aperto in modalità write-binary (wb). L'argomento valore-chiave è il terzo parametro. Il protocollo è definito da questo parametro. Un sottaceto è classificato in due tipi: PROTOCOLLO PIÙ ALTO e PROTOCOLLO PREDEFINITO di un sottaceto. Per recuperare o deserializzare i dati, viene utilizzato il metodo pickle load() attraverso il quale si ottiene un oggetto file aprendo un file in modalità read-binary (rb).







Esempio 1: serializzazione e deserializzazione dei dati in un file Pickle utilizzando la funzione Pickle Dump and Load

In questo esempio impareremo come serializzare e deserializzare i dati come un dizionario con un codice molto semplice.




Nel codice presentato nell'illustrazione precedente, il primo modulo pickle dalla libreria Python viene importato in modo che i suoi metodi possano essere utilizzati. Quindi, un dizionario di dati con 2 chiavi e valori viene inizializzato e memorizzato nella variabile denominata 'shape'. Nella riga successiva, il metodo pickle dump() viene utilizzato per aprire un nuovo file con il nome 'info.p' in modalità write-binary (wb) e i dati 'shape' vengono memorizzati in questo file. Nella riga successiva, il metodo pickle load() viene utilizzato per lo stesso file in cui abbiamo scaricato i dati in modalità rb. Questo restituisce i dati del nostro dizionario e viene memorizzato nella variabile denominata 'a'. Infine, questo oggetto restituito viene visualizzato sul terminale di output utilizzando il comando print come mostrato nello screenshot seguente.



Possiamo vedere che i dati sono stati prima memorizzati nel file 'info.p' utilizzando il metodo dump. Quindi, quando abbiamo utilizzato il metodo load() sullo stesso file, abbiamo recuperato i nostri dati.





Esempio 2: utilizzo della funzione Pickle Dump con un protocollo aggiuntivo per serializzare i dati in Python

Questo è un esempio simile in cui usiamo un protocollo aggiuntivo, il “HIGHEST_PROTOCOL”, di pickle che è il protocollo più recente. Questo protocollo consente nuove funzionalità linguistiche che possiamo utilizzare e includere ottimizzazioni.




Nel codice fornito nell'illustrazione precedente, viene importato il primo modulo pickle. Quindi, un dizionario di un elemento con una chiave e un valore viene inizializzato e memorizzato nella variabile 'a'. Nella riga successiva, un nuovo file che è 'info.p' viene aperto in modalità wb come handle. Ora, il file si trova nell'oggetto chiamato 'handle'. Quindi, la funzione dump() viene impiegata per ''gestire' con il dizionario 'a' utilizzando 'HIGHEST_PROTOCOL'. Questo permette di salvare il dizionario in “a” nel file “info.p” sul dischetto del computer. Per estrarre le informazioni dal file, il file viene prima aperto in modalità 'rb'. Quindi, per questo file viene utilizzato il metodo pickle load(). I dati restituiti vengono salvati nell'attributo “b”. Infine, utilizzando il comando print, queste informazioni vengono visualizzate nel nodo di output, come mostrato nella seguente schermata:

Esempio 3: serializzazione e deserializzazione di un elenco di dati in un file Pickle utilizzando la funzione Pickle Dump and Load

In questo esempio, il modulo pickle viene importato per primo. Quindi, alcuni dati vengono inseriti in un dizionario in formato elenco e memorizzati nella variabile 'shape_colors'. Nella riga successiva, il metodo pickle dump() viene impiegato direttamente con questi dati. Al posto del file nel suo parametro, viene aperto il file “info.p” in modalità wb. Di conseguenza, i dati del dizionario vengono ora scaricati in questo file memorizzato sul disco del computer. Quindi, per leggere i dati dal file, viene utilizzato il metodo pickle load() sullo stesso file. I dati restituiti vengono salvati nella variabile “a”. Infine, utilizzando il comando print, queste informazioni vengono visualizzate sui terminali secondari, come illustrato nella seguente istantanea:



Esempio 4: memorizzazione di informazioni in un file Pickle utilizzando le funzioni Pickle Dump e Load con parametri diversi

Nel codice fornito, viene importato il primo modulo pickle. Quindi, un dizionario degli stipendi viene inizializzato e memorizzato nella variabile 'stipendi'. Nella riga successiva, un nuovo file 'salary.p' viene aperto in modalità wb come handle. Ora, il file si trova nell'oggetto chiamato 'handle'. Quindi, la funzione pickle dump() viene impiegata per 'gestire' il dizionario 'stipendi' utilizzando 'HIGHEST_PROTOCOL'. Questo permette di salvare il dizionario in “stipendi” nel file “stipendio.p” sul dischetto del computer. Ora, per recuperare i dati dal file, il file viene prima aperto in modalità 'rb'. Quindi, per questo file viene utilizzato il metodo pickle load(). Le informazioni ripristinate vengono salvate nella variabile 'a'. In definitiva, utilizzando il comando print, questi dati vengono visualizzati all'estremità dell'output come illustrato nella seguente istantanea:



Esempio 5: serializzazione e deserializzazione di dati in più dimensioni in un file Pickle utilizzando la funzione Pickle Dump and Load

La creazione di DataFrame (tabelle multidimensionali) in Python è utile per testare nuovi metodi e funzioni trovati nel modulo Panda di Python. Esistono vari metodi per creare un DataFrame da zero, ma uno dei più semplici è utilizzare un dizionario di base.


Nel codice fornito nell'illustrazione precedente, vengono importati i primi moduli pickle e Pandas. Quindi, viene creata una tabella multidimensionale utilizzando il metodo pd.DataFrame(). Il prossimo attributo della strategia è un elenco di quattro elenchi. Ogni elenco corrisponde a una riga della tabella. Il secondo parametro è “colonne” che definisce l'intestazione di ciascuna colonna della tabella. Questo DataFrame è memorizzato in 'pre'. Quindi, un nuovo file che è 'attendance.p' viene aperto in modalità wb e il metodo pickle dump() viene utilizzato su questo file con DataFrame. Ora, i nostri dati specificati sono memorizzati nel file 'attendance.p' sul disco rigido del computer.


Per recuperare i dati dal file, apriamo il file in modalità rb che permette la lettura del file. Quindi, il metodo pickle load() viene utilizzato nel file 'attendance.p'. Infine, i dati nel file vengono visualizzati nel terminale di output. Come possiamo vedere, l'intero DataFrame viene visualizzato sul terminale di output che è memorizzato nel file 'attendance.p'.

Conclusione

Prendi ulteriori precauzioni quando lavori con i file pickle. Il modulo pickle manca di sicurezza. Deseleziona solo i dati di cui sei sicuro. È possibile creare dati di pickle dannosi che potrebbero eseguire codice arbitrario durante il processo di deserializzazione. È, tuttavia, un metodo efficace per archiviare dizionari, elenchi e tabelle in Python. Il decapaggio è particolarmente vantaggioso nell'analisi dei dati quando si eseguono operazioni di routine sui dati come la pre-elaborazione. Spero che questo articolo ti abbia aiutato a conoscere i diversi metodi del modulo pickle di Python e come usarlo con i dizionari.