Pickle Dictionary i Python

Pickle Dictionary I Python



Pickle kan brukes til å forhåndsbehandle Python-entitetsrammeverket, som er prosessen med å konvertere et objekt fra minnet til en bytestrøm som kan lagres på disk som et binært format. Denne prosedyren er kjent som serialisering. For å oppnå dette, bruk pickle dump()-metoden. Når denne binære posten lastes inn i et Python-program igjen, kan den de-serialiseres og konverteres tilbake til et Python-objekt ved å bruke pickle load()-metoden.

Denne artikkelen lærer deg hvordan du lagrer dataene, mer spesifikt en ordbok, ved å bruke Pythons pickle-modul. Til å begynne med må vi anskaffe sylteagurkmodulen. Pickle dump() godtar tre parametere. Den første inngangen spesifiserer dataene som skal lagres. Den andre parameteren er filobjektet som returneres når en fil åpnes i skrive-binær (wb) modus. Nøkkelverdi-argumentet er den tredje parameteren. Protokollen er definert av denne parameteren. En sylteagurk er klassifisert i to typer: HØYEST PROTOKOLL samt en STANDARDPROTOKOLL for sylteagurk. For å hente eller deserialisere dataene, brukes pickle load()-metoden som et filobjekt oppnås ved å åpne en fil i read-binary (rb) modus.







Eksempel 1: Serialisering og deserialisering av data i en pickle-fil ved å bruke funksjonen Pickle Dump and Load

I dette eksemplet vil vi lære å serialisere og deserialisere dataene som en ordbok med en veldig enkel kode.




I koden presentert i forrige illustrasjon importeres den første pickle-modulen fra Python-biblioteket slik at metodene kan brukes. Deretter initialiseres en dataordbok med 2 nøkler og verdier og lagres i variabelen kalt 'shape'. I neste linje brukes pickle dump()-metoden til å åpne en ny fil med navnet 'info.p' i skrive-binær (wb)-modus og 'shape'-dataene lagres i denne filen. I neste linje brukes pickle load()-metoden for den samme filen som vi dumpet dataene i rb-modus. Dette returnerer ordbokdataene våre og lagres i variabelen kalt 'a'. Til slutt vises dette returnerte objektet ved utgangsterminalen ved å bruke utskriftskommandoen som vist i følgende skjermbilde.



Vi kan se at dataene først ble lagret i 'info.p'-filen ved å bruke dumpmetoden. Så, når vi brukte load()-metoden til den samme filen, fikk vi tilbake dataene våre.





Eksempel 2: Bruke Pickle Dump-funksjonen med en tilleggsprotokoll for å serialisere dataene i Python

Dette er et lignende eksempel der vi bruker en tilleggsprotokoll, 'HIGHEST_PROTOCOL', av pickle som er den nyeste protokollen. Denne protokollen tillater nye språkfunksjoner som vi kan bruke og inkluderer optimaliseringer.




I koden gitt i forrige illustrasjon importeres den første sylteagurkmodulen. Deretter initialiseres en ordbok med ett element med en nøkkel og verdi og lagres i variabelen 'a'. I neste linje åpnes en ny fil som er 'info.p' i wb-modus som et håndtak. Nå er filen i objektet som heter 'håndtak'. Deretter brukes dump()-funksjonen til å 'handle' med ordboken 'a' ved å bruke 'HIGHEST_PROTOCOL'. Dette gjør at ordboken i 'a' kan lagres i 'info.p'-filen på disken til datamaskinen. For å trekke ut informasjonen fra filen, åpnes filen i «rb»-modus først. Deretter brukes pickle load()-metoden for denne filen. De returnerte dataene lagres i attributtet 'b'. Til slutt, ved å bruke utskriftskommandoen, vises denne informasjonen ved utgangsnoden, som vist i følgende skjermbilde:

Eksempel 3: Serialisering og deserialisering av en liste over data i en pickle-fil ved å bruke funksjonen Pickle Dump and Load

I dette eksemplet importeres pickle-modulen først. Deretter blir noen data satt inn i en ordbok i et listeformat og lagret i 'shape_colors'-variabelen. I neste linje brukes pickle dump()-metoden direkte med disse dataene. I stedet for filen i parameteren, åpnes 'info.p'-filen i wb-modus. Som et resultat blir ordbokdataene nå dumpet i denne filen som er lagret på disken til datamaskinen. Deretter, for å lese dataene fra filen, brukes pickle load()-metoden på den samme filen. De returnerte dataene lagres i variabelen 'a'. Til slutt, ved å bruke utskriftskommandoen, vises denne informasjonen på de sekundære terminalene, som vist i følgende øyeblikksbilde:



Eksempel 4: Lagre informasjon i en pickle-fil ved å bruke funksjonene Pickle Dump og Load med forskjellige parametere

I koden som er oppgitt, importeres den første sylteagurkmodulen. Deretter initialiseres en ordbok over lønn og lagres i variabelen 'lønn'. I neste linje åpnes en ny fil 'salary.p' i wb-modus som et håndtak. Nå er filen i objektet som heter 'håndtak'. Deretter brukes pickle dump()-funksjonen til å 'håndtere' med 'salaris'-ordboken ved å bruke 'HIGHEST_PROTOCOL'. Dette gjør at ordboken i 'lønn' kan lagres i 'salary.p'-filen på disken til datamaskinen. Nå, for å hente dataene tilbake fra filen, åpnes filen først i 'rb'-modus. Deretter brukes pickle load()-metoden for denne filen. Den tilbakeførte informasjonen lagres i variabelen 'a'. Til syvende og sist, ved å bruke utskriftskommandoen, vises disse dataene ved utdataenden som vist i følgende øyeblikksbilde:



Eksempel 5: Serialisering og deserialisering av data i flere dimensjoner i en pickle-fil ved å bruke funksjonen Pickle Dump and Load

Å lage DataFrames (flerdimensjonale tabeller) i Python er nyttig for å teste nye metoder og funksjoner som finnes i Panda-modulen til Python. Det finnes ulike metoder for å bygge en DataFrame fra bunnen av, men en av de enkleste er å bruke en grunnleggende ordbok.


I koden gitt i forrige illustrasjon importeres de første sylteagurk- og Pandas-modulene. Deretter opprettes en flerdimensjonal tabell ved å bruke pd.DataFrame()-metoden. Strategiens neste attributt er en liste med fire lister. Hver liste tilsvarer en rad i tabellen. Den andre parameteren er 'kolonner' som definerer overskriften til hver kolonne i tabellen. Denne DataFrame er lagret i 'pre'. Deretter åpnes en ny fil som er 'attendance.p' i wb-modus og pickle dump()-metoden brukes på denne filen med DataFrame. Nå lagres våre spesifiserte data i filen 'attendance.p' på harddisken til datamaskinen.


For å hente dataene fra filen åpner vi filen i rb-modus som tillater lesing av filen. Deretter brukes pickle load()-metoden i filen 'attendance.p'. Til slutt vises dataene i filen ved utgangsterminalen. Som vi kan se, vises hele DataFrame på utgangsterminalen som er lagret i filen 'attendance.p'.

Konklusjon

Ta ekstra forholdsregler når du arbeider med sylteagurkfiler. Pickle-modulen mangler sikkerhet. Fjern kun dataene du er trygg på. Det er mulig å lage ondsinnede pickle-data som kan kjøre vilkårlig kode under opphevingsprosessen. Det er likevel en effektiv metode for å lagre ordbøker, lister og tabeller i Python. Beising er spesielt fordelaktig i dataanalyse når du utfører rutineoperasjoner på dataene, for eksempel forhåndsbehandling. Jeg håper denne artikkelen hjalp deg med å lære om de forskjellige metodene for pickle-modulen til Python og hvordan du bruker den med ordbøker.