Pickle Dictionary i Python

Pickle Dictionary I Python



Pickle kan bruges til at forbehandle Python-entitetsrammerne, som er processen med at konvertere et objekt fra hukommelsen til en bytestrøm, der kan gemmes på disken som et binært format. Denne procedure er kendt som serialisering. For at opnå dette, brug pickle dump() metoden. Når denne binære post indlæses i et Python-program igen, kan den afserialiseres og konverteres tilbage til et Python-objekt ved hjælp af pickle load()-metoden.

Denne artikel lærer dig, hvordan du gemmer dataene, mere specifikt en ordbog, ved hjælp af Pythons pickle-modul. Til at begynde med skal vi anskaffe syltemodulet. Pickle dump() accepterer tre parametre. Det første input specificerer de data, der skal gemmes. Den anden parameter er filobjektet, der returneres, når en fil åbnes i skrive-binær (wb) tilstand. Nøgleværdi-argumentet er den tredje parameter. Protokollen er defineret af denne parameter. En lage er klassificeret i to typer: HØJEST PROTOKOL samt en STANDARDPROTOKOL for lage. For at hente eller deserialisere dataene bruges pickle load() metoden, hvorigennem et filobjekt opnås ved at åbne en fil i read-binary (rb) mode.







Eksempel 1: Serialisering og deserialisering af data i en pickle-fil ved hjælp af pickle-dump og load-funktionen

I dette eksempel vil vi lære at serialisere og deserialisere dataene som en ordbog med en meget simpel kode.




I koden præsenteret i den foregående illustration importeres det første pickle-modul fra Python-biblioteket, så dets metoder kan bruges. Derefter initialiseres en ordbog med data med 2 nøgler og værdier og gemmes i variablen kaldet 'shape'. I den næste linje bruges pickle dump()-metoden til at åbne en ny fil med navnet 'info.p' i skrive-binær (wb)-tilstand, og 'shape'-dataene gemmes i denne fil. I den næste linje bruges pickle load()-metoden til den samme fil, som vi dumpede dataene i i rb-tilstand. Dette returnerer vores ordbogsdata og gemmes i variablen kaldet 'a'. Til sidst vises dette returnerede objekt ved outputterminalen ved hjælp af printkommandoen som vist på det følgende skærmbillede.



Vi kan se, at dataene først blev gemt i 'info.p'-filen ved hjælp af dumpmetoden. Så, da vi brugte load()-metoden til den samme fil, fik vi vores data tilbage.





Eksempel 2: Brug af Pickle Dump-funktionen med en yderligere protokol til at serialisere dataene i Python

Dette er et lignende eksempel, hvor vi bruger en ekstra protokol, 'HIGHEST_PROTOCOL', af pickle, som er den seneste protokol. Denne protokol tillader nye sprogfunktioner, som vi kan bruge, og inkluderer optimeringer.




I koden i den foregående illustration importeres det første pickle-modul. Derefter initialiseres en ordbog over et element med en nøgle og værdi og gemmes i variablen 'a'. I næste linje åbnes en ny fil, som er 'info.p', i wb-tilstand som et håndtag. Nu er filen i objektet kaldet 'håndtag'. Derefter bruges dump()-funktionen til at 'handle' med ordbogen 'a' ved hjælp af 'HIGHEST_PROTOCOL'. Dette gør det muligt at gemme ordbogen i 'a' i filen 'info.p' på computerens disk. For at udtrække oplysningerne fra filen åbnes filen først i 'rb'-tilstand. Derefter anvendes pickle load()-metoden til denne fil. De returnerede data gemmes i attributten 'b'. Til sidst, ved hjælp af udskriftskommandoen, vises denne information ved outputknudepunktet, som det ses i følgende skærmbillede:

Eksempel 3: Serialisering og deserialisering af en liste over data i en pickle-fil ved hjælp af pickle-dump og load-funktionen

I dette eksempel importeres pickle-modulet først. Derefter indsættes nogle data i en ordbog i et listeformat og gemmes i 'shape_colors'-variablen. I den næste linje anvendes pickle dump() metoden direkte med disse data. I stedet for filen i dens parameter åbnes filen 'info.p' i wb-tilstand. Som et resultat bliver ordbogsdataene nu dumpet i denne fil, som er gemt på computerens disk. Derefter, for at læse dataene fra filen, anvendes pickle load()-metoden på den samme fil. De returnerede data gemmes i variablen 'a'. Til sidst, ved hjælp af udskriftskommandoen, vises denne information ved de sekundære terminaler, som afbildet i følgende snapshot:



Eksempel 4: Lagring af information i en pickle-fil ved hjælp af pickle-dump- og indlæsningsfunktionerne med forskellige parametre

I den angivne kode importeres det første pickle-modul. Derefter initialiseres en ordbog over lønninger og gemmes i variablen 'løn'. I næste linje åbnes en ny fil 'salary.p' i wb-tilstand som et håndtag. Nu er filen i objektet kaldet 'håndtag'. Derefter bruges pickle dump()-funktionen til at 'håndtere' med 'løn'-ordbogen ved hjælp af 'HIGHEST_PROTOCOL'. Dette gør det muligt at gemme ordbogen i 'løn' i filen 'salary.p' på computerens disk. Nu, for at hente data tilbage fra filen, åbnes filen først i 'rb'-tilstand. Derefter anvendes pickle load()-metoden til denne fil. Den tilbageførte information gemmes i variablen 'a'. I sidste ende, ved at bruge udskriv-kommandoen, vises disse data i outputenden som afbildet i følgende øjebliksbillede:



Eksempel 5: Serialisering og deserialisering af data i flere dimensioner i en pickle-fil ved hjælp af pickle-dump og load-funktionen

Oprettelse af DataFrames (multidimensionelle tabeller) i Python er praktisk til at teste nye metoder og funktioner, der findes i Panda's modul i Python. Der er forskellige metoder til at bygge en DataFrame fra bunden, men en af ​​de enkleste er at bruge en grundlæggende ordbog.


I koden i den foregående illustration importeres de første pickle- og Pandas-moduler. Derefter oprettes en multidimensionel tabel ved hjælp af pd.DataFrame() metoden. Strategiens næste egenskab er en liste med fire lister. Hver liste svarer til en række i tabellen. Den anden parameter er 'kolonner', som definerer overskriften på hver kolonne i tabellen. Denne DataFrame er gemt i 'pre'. Derefter åbnes en ny fil, som er 'attendance.p' i wb-tilstand, og pickle dump()-metoden anvendes på denne fil med DataFrame. Nu er vores specificerede data gemt i filen 'attendance.p' på computerens harddisk.


For at hente dataene fra filen åbner vi filen i rb-tilstand, som tillader læsning af filen. Derefter anvendes pickle load()-metoden i filen 'attendance.p'. Til sidst vises dataene i filen ved outputterminalen. Som vi kan se, vises hele DataFrame på outputterminalen, som er gemt i filen 'attendance.p'.

Konklusion

Tag ekstra forholdsregler, når du arbejder med pickle-filer. Pickle-modulet mangler sikkerhed. Fjern kun de data, som du er sikker på. Det er muligt at oprette ondsindede pickle-data, som kan udføre vilkårlig kode under optagningsprocessen. Det er ikke desto mindre en effektiv metode til at gemme ordbøger, lister og tabeller i Python. Bejdsning er især fordelagtig i dataanalyse, når du udfører rutineoperationer på dataene, såsom forbehandling. Jeg håber, at denne artikel hjalp dig med at lære om de forskellige metoder til pickle-modulet i Python, og hvordan du bruger det med ordbøger.