Pickle Dictionary en Python

Pickle Dictionary En Python



Pickle es pot utilitzar per preprocessar els marcs d'entitats Python, que és el procés de convertir un objecte de la memòria en un flux de bytes que es pot desar al disc com a format binari. Aquest procediment es coneix com a serialització. Per aconseguir-ho, utilitzeu el mètode pickle dump(). Quan aquest registre binari es torna a carregar en un programa de Python, es pot deserialitzar i tornar a convertir en un objecte de Python mitjançant el mètode pickle load().

Aquest article us ensenya com emmagatzemar les dades, més concretament un diccionari, utilitzant el mòdul pickle de Python. Per començar, hem de procurar el mòdul pickle. Pickle dump() accepta tres paràmetres. La primera entrada especifica les dades a desar. El segon paràmetre és l'objecte fitxer que es retorna quan s'obre un fitxer en mode d'escriptura binari (wb). L'argument clau-valor és el tercer paràmetre. El protocol està definit per aquest paràmetre. Un adobat es classifica en dos tipus: el PROTOCOL MÉS ALTO i un PROTOCOL PREDETERMINAT. Per recuperar o deserialitzar les dades, s'utilitza el mètode pickle load() mitjançant el qual s'obté un objecte fitxer obrint un fitxer en mode de lectura binari (rb).







Exemple 1: serialització i deserialització de dades en un fitxer Pickle mitjançant la funció Pickle Dump and Load

En aquest exemple, aprendrem a serialitzar i deserialitzar les dades com a diccionari amb un codi molt senzill.




En el codi que es presenta a la il·lustració anterior, s'importa el primer mòdul pickle de la biblioteca Python perquè es puguin utilitzar els seus mètodes. A continuació, s'inicialitza un diccionari de dades amb 2 claus i valors i s'emmagatzema a la variable anomenada 'forma'. A la línia següent, el mètode pickle dump() s'utilitza per obrir un fitxer nou amb el nom 'info.p' en mode d'escriptura binari (wb) i les dades de 'forma' s'emmagatzemen en aquest fitxer. A la línia següent, s'utilitza el mètode pickle load() per al mateix fitxer en què vam bolcar les dades en mode rb. Això retorna les dades del nostre diccionari i s'emmagatzema a la variable anomenada 'a'. Finalment, aquest objecte retornat es mostra al terminal de sortida mitjançant l'ordre d'impressió tal com es mostra a la captura de pantalla següent.



Podem veure que les dades es van emmagatzemar primer al fitxer 'info.p' mitjançant el mètode dump. Aleshores, quan vam utilitzar el mètode load() al mateix fitxer, vam recuperar les nostres dades.





Exemple 2: ús de la funció Pickle Dump amb un protocol addicional per serialitzar les dades a Python

Aquest és un exemple similar en què fem servir un protocol addicional, el 'HIGHEST_PROTOCOL', de pickle que és l'últim protocol. Aquest protocol permet noves característiques del llenguatge que podem utilitzar i incloure optimitzacions.




Al codi proporcionat a la il·lustració anterior, s'importa el primer mòdul pickle. Aleshores, un diccionari d'un element amb una clau i un valor s'inicia i s'emmagatzema a la variable 'a'. A la línia següent, s'obre un fitxer nou que és 'info.p' en mode wb com a identificador. Ara, el fitxer es troba a l'objecte anomenat 'handle'. Aleshores, la funció dump() s'utilitza per a 'gestionar' amb el diccionari 'a' mitjançant el 'PROTOCOL MÉS ALTO'. Això permet que el diccionari en “a” es desi al fitxer “info.p” al disc de l'ordinador. Per extreure la informació del fitxer, primer s'obre el fitxer en mode 'rb'. Aleshores, s'utilitza el mètode pickle load() per a aquest fitxer. Les dades retornades es guarden a l'atribut “b”. Finalment, utilitzant l'ordre d'impressió, aquesta informació es mostra al node de sortida, tal com es veu a la següent captura de pantalla:

Exemple 3: serialització i deserialització d'una llista de dades en un fitxer Pickle mitjançant la funció Pickle Dump and Load

En aquest exemple, primer s'importa el mòdul pickle. A continuació, algunes dades s'insereixen en un diccionari en format de llista i s'emmagatzemen a la variable 'shape_colors'. A la línia següent, el mètode pickle dump() s'utilitza directament amb aquestes dades. En lloc del fitxer en el seu paràmetre, el fitxer 'info.p' s'obre en mode wb. Com a resultat, les dades del diccionari s'aboquen ara en aquest fitxer que s'emmagatzema al disc de l'ordinador. Aleshores, per llegir les dades del fitxer, s'utilitza el mètode pickle load() al mateix fitxer. Les dades retornades es guarden a la variable 'a'. Finalment, utilitzant l'ordre d'impressió, aquesta informació es mostra als terminals secundaris, tal com es mostra a la següent instantània:



Exemple 4: emmagatzemar informació en un fitxer Pickle utilitzant les funcions Pickle Dump i load amb diferents paràmetres

Al codi proporcionat, s'importa el primer mòdul pickle. A continuació, s'inicialitza un diccionari de sous i s'emmagatzema a la variable 'salaris'. A la línia següent, s'obre un nou fitxer “salary.p” en mode wb com a identificador. Ara, el fitxer es troba a l'objecte anomenat 'handle'. A continuació, s'utilitza la funció pickle dump() per 'manejar' amb el diccionari de 'salaris' mitjançant el 'PROTOCOL MÉS ALTO'. Això permet que el diccionari de 'salaris' es desi al fitxer 'salary.p' al disc de l'ordinador. Ara, per recuperar les dades del fitxer, primer s'obre el fitxer en mode 'rb'. Aleshores, s'utilitza el mètode pickle load() per a aquest fitxer. La informació revertida es desa a la variable 'a'. En última instància, mitjançant l'ús de l'ordre d'impressió, aquestes dades es mostren a l'extrem de sortida tal com es mostra a la instantània següent:



Exemple 5: serialització i deserialització de dades en diverses dimensions en un fitxer Pickle mitjançant la funció Pickle Dump and Load

La creació de DataFrames (taules multidimensionals) a Python és útil per provar nous mètodes i funcions que es troben al mòdul de Python de Panda. Hi ha diversos mètodes per crear un DataFrame des de zero, però un dels més senzills és utilitzar un diccionari bàsic.


En el codi proporcionat a la il·lustració anterior, s'importen els primers mòduls pickle i Pandas. A continuació, es crea una taula multidimensional mitjançant el mètode pd.DataFrame(). El següent atribut de l'estratègia és una llista de quatre llistes. Cada llista correspon a una fila de la taula. El segon paràmetre és 'columnes' que defineix l'encapçalament de cada columna de la taula. Aquest DataFrame s'emmagatzema a 'pre'. A continuació, s'obre un fitxer nou que és 'attendance.p' en mode wb i s'utilitza el mètode pickle dump() en aquest fitxer amb el DataFrame. Ara, les nostres dades especificades s'emmagatzemen al fitxer 'attendance.p' al disc dur de l'ordinador.


Per recuperar les dades del fitxer, obrim el fitxer en mode rb que permet la lectura del fitxer. A continuació, s'utilitza el mètode pickle load() al fitxer 'attendance.p'. Finalment, les dades del fitxer es mostren al terminal de sortida. Com podem veure, tot el DataFrame es mostra al terminal de sortida que s'emmagatzema al fitxer 'attendance.p'.

Conclusió

Preneu precaucions addicionals quan treballeu amb fitxers pickle. El mòdul pickle no té seguretat. Desafegiu només les dades en què confieu. És possible crear dades malicioses que poden executar codi arbitrari durant el procés de decaptura. No obstant això, és un mètode eficaç per emmagatzemar diccionaris, llistes i taules a Python. El decapatge és especialment beneficiós en l'anàlisi de dades quan esteu executant operacions rutinàries sobre les dades, com ara el preprocessament. Espero que aquest article us hagi ajudat a conèixer els diferents mètodes del mòdul pickle de Python i com utilitzar-lo amb els diccionaris.