Pickle Dictionary i Python

Pickle Dictionary I Python



Pickle kan användas för att förbearbeta Python-entitetsramarna, vilket är processen att konvertera ett objekt från minnet till en byteström som kan sparas på skiva som ett binärt format. Denna procedur är känd som serialisering. För att åstadkomma detta, använd metoden pickle dump(). När den här binära posten läses in i ett Python-program igen, kan den avserialiseras och konverteras tillbaka till ett Python-objekt med hjälp av pickle load()-metoden.

Den här artikeln lär dig hur du lagrar data, mer specifikt en ordbok, med Pythons pickle-modul. Till att börja med måste vi skaffa inläggningsmodulen. Pickle dump() accepterar tre parametrar. Den första ingången anger vilken data som ska sparas. Den andra parametern är filobjektet som returneras när en fil öppnas i skrivbinärt (wb) läge. Nyckel-värde-argumentet är den tredje parametern. Protokollet definieras av denna parameter. En saltgurka klassificeras i två typer: HÖGSTA PROTOKOLL samt en STANDARDPROTOKOLL för inläggning. För att hämta eller deserialisera data, används pickle load()-metoden genom vilken ett filobjekt erhålls genom att öppna en fil i read-binary (rb)-läge.







Exempel 1: Serialisering och avserialisering av data i en pickle-fil med hjälp av funktionen Pickle dump and Load

I det här exemplet kommer vi att lära oss hur man serialiserar och deserialiserar data som en ordbok med en mycket enkel kod.




I koden som presenterades i föregående illustration importeras den första pickle-modulen från Python-biblioteket så att dess metoder kan användas. Sedan initieras en ordbok med data med 2 nycklar och värden och lagras i variabeln som heter 'shape'. På nästa rad används pickle dump()-metoden för att öppna en ny fil med namnet 'info.p' i skrivbinärt (wb)-läge och 'shape'-data lagras i denna fil. På nästa rad används pickle load()-metoden för samma fil som vi dumpade data i i rb-läge. Detta returnerar vår ordboksdata och lagras i variabeln som heter 'a'. Slutligen visas detta returnerade objekt vid utgångsterminalen med hjälp av utskriftskommandot som visas i följande skärmdump.



Vi kan se att data först lagrades i filen 'info.p' med dumpmetoden. Sedan, när vi använde metoden load() till samma fil, fick vi tillbaka våra data.





Exempel 2: Använda Pickle Dump-funktionen med ett ytterligare protokoll för att serialisera data i Python

Detta är ett liknande exempel där vi använder ett extra protokoll, 'HIGHEST_PROTOCOL', av pickle som är det senaste protokollet. Detta protokoll tillåter nya språkfunktioner som vi kan använda och inkluderar optimeringar.




I koden i föregående illustration importeras den första pickle-modulen. Sedan initieras en ordlista för ett objekt med en nyckel och ett värde och lagras i variabeln 'a'. På nästa rad öppnas en ny fil som är 'info.p' i wb-läge som ett handtag. Nu finns filen i objektet som heter 'handtag'. Sedan används funktionen dump() för att 'hantera' med ordboken 'a' med hjälp av 'HIGHEST_PROTOCOL'. Detta gör att ordboken i 'a' kan sparas i filen 'info.p' på datorns disk. För att extrahera informationen från filen öppnas filen först i rb-läge. Sedan används pickle load()-metoden för den här filen. De returnerade uppgifterna sparas i attributet 'b'. Slutligen, med hjälp av utskriftskommandot, visas denna information vid utgångsnoden, som ses i följande skärmdump:

Exempel 3: Serialisering och deserialisering av en lista med data i en pickle-fil med hjälp av funktionen Pickle dump and Load

I det här exemplet importeras pickle-modulen först. Sedan infogas en del data i en ordbok i ett listformat och lagras i variabeln 'shape_colors'. På nästa rad används pickle dump()-metoden direkt med dessa data. I stället för filen i dess parameter öppnas filen 'info.p' i wb-läge. Som ett resultat av detta dumpas nu ordboksdata i denna fil som lagras på datorns disk. Sedan, för att läsa data från filen, används pickle load()-metoden på samma fil. Den returnerade datan sparas i variabeln 'a'. Slutligen, med hjälp av utskriftskommandot, visas denna information vid de sekundära terminalerna, som visas i följande ögonblicksbild:



Exempel 4: Lagra information i en picklefil med hjälp av funktionerna Pickle dump och ladda med olika parametrar

I den angivna koden importeras den första pickle-modulen. Sedan initieras en ordbok över löner och lagras i variabeln 'löner'. På nästa rad öppnas en ny fil 'salary.p' i wb-läge som handtag. Nu finns filen i objektet som heter 'handtag'. Sedan används pickle dump()-funktionen för att 'hantera' med 'löner'-ordboken med 'HIGHEST_PROTOCOL'. Detta gör att ordlistan i 'löner' kan sparas i filen 'salary.p' på datorns disk. Nu, för att hämta tillbaka data från filen, öppnas filen först i 'rb'-läge. Sedan används pickle load()-metoden för den här filen. Den återställda informationen sparas i variabeln 'a'. I slutändan, genom att använda utskriftskommandot, visas dessa data i utmatningsänden som visas i följande ögonblicksbild:



Exempel 5: Serialisering och avserialisering av data i flera dimensioner i en pickle-fil med hjälp av funktionen Pickle dump and Load

Att skapa DataFrames (flerdimensionella tabeller) i Python är praktiskt för att testa nya metoder och funktioner som finns i Pandas modul av Python. Det finns olika metoder för att bygga en DataFrame från grunden, men en av de enklaste är att använda en grundläggande ordbok.


I koden i föregående illustration importeras de första pickle- och Pandamodulerna. Sedan skapas en flerdimensionell tabell med metoden pd.DataFrame() . Strategins nästa attribut är en lista med fyra listor. Varje lista motsvarar en rad i tabellen. Den andra parametern är 'kolumner' som definierar rubriken för varje kolumn i tabellen. Denna DataFrame lagras i 'pre'. Sedan öppnas en ny fil som är 'attendance.p' i wb-läge och metoden pickle dump() används på denna fil med DataFrame. Nu lagras vår specificerade data i filen 'attendance.p' på datorns hårddisk.


För att hämta data från filen öppnar vi filen i rb-läge som tillåter läsning av filen. Sedan används pickle load()-metoden i filen 'attendance.p'. Slutligen visas data i filen vid utgångsterminalen. Som vi kan se visas hela DataFrame vid utgångsterminalen som är lagrad i filen 'attendance.p'.

Slutsats

Ta extra försiktighetsåtgärder när du arbetar med pickle-filer. Pickle-modulen saknar säkerhet. Plocka bara upp data som du är säker på. Det är möjligt att skapa skadlig pickle-data som kan exekvera godtycklig kod under upptagningsprocessen. Det är ändå en effektiv metod för att lagra ordböcker, listor och tabeller i Python. Betning är särskilt fördelaktigt vid dataanalys när du utför rutinoperationer på data, såsom förbearbetning. Jag hoppas att den här artikeln hjälpte dig att lära dig om de olika metoderna för pickle-modulen i Python och hur du använder den med ordböcker.