Pickle rječnik u Pythonu

Pickle Rjecnik U Pythonu



Pickle se može koristiti za prethodnu obradu okvira Python entiteta, što je proces pretvaranja objekta iz memorije u tok bajtova koji se može spremiti na disk kao binarni format. Ovaj postupak je poznat kao serijalizacija. Da biste to postigli, koristite metodu pickle dump(). Kada se ovaj binarni zapis ponovno učita u Python program, može se deserializirati i pretvoriti natrag u Python objekt pomoću metode pickle load().

Ovaj vas članak uči kako pohraniti podatke, točnije rječnik, koristeći Pythonov pickle modul. Za početak moramo nabaviti modul za kisele krastavce. Pickle dump() prihvaća tri parametra. Prvi unos specificira podatke za spremanje. Drugi parametar je objekt datoteke koji se vraća kada se datoteka otvori u binarnom načinu pisanja (wb). Argument ključ-vrijednost je treći parametar. Protokol je definiran ovim parametrom. Kiseli krastavac je klasificiran u dvije vrste: NAJVIŠI PROTOKOL kao i ZADANI PROTOKOL krastavaca. Za dohvaćanje ili deserijalizaciju podataka koristi se metoda pickle load() putem koje se objekt datoteke dobiva otvaranjem datoteke u čitaj-binarnom (rb) načinu rada.







Primjer 1: Serijalizacija i deserijalizacija podataka u Pickle datoteci pomoću funkcije Pickle Dump i Load

U ovom primjeru naučit ćemo kako serijalizirati i deserijalizirati podatke kao rječnik s vrlo jednostavnim kodom.




U kodu predstavljenom na prethodnoj ilustraciji, prvi modul pickle iz biblioteke Python je uvezen tako da se njegove metode mogu koristiti. Zatim se inicijalizira rječnik podataka s 2 ključa i vrijednosti i pohranjuje u varijabli pod nazivom 'oblik'. U sljedećem retku, metoda pickle dump() koristi se za otvaranje nove datoteke s nazivom 'info.p' u binarnom načinu pisanja (wb), a podaci 'oblika' pohranjuju se u ovu datoteku. U sljedećem retku koristi se metoda pickle load() za istu datoteku u koju smo izbacili podatke u rb modu. Ovo vraća podatke iz našeg rječnika i pohranjuje se u varijabli pod nazivom 'a'. Konačno, ovaj vraćeni objekt se prikazuje na izlaznom terminalu pomoću naredbe za ispis kao što je prikazano na sljedećoj snimci zaslona.



Vidimo da su podaci najprije pohranjeni u datoteku “info.p” koristeći dump metodu. Zatim, kada smo upotrijebili metodu load() na istoj datoteci, vratili smo svoje podatke.





Primjer 2: Korištenje funkcije Pickle Dump s dodatnim protokolom za serijalizaciju podataka u Pythonu

Ovo je sličan primjer u kojem koristimo dodatni protokol, 'HIGHEST_PROTOCOL', za pickle koji je najnoviji protokol. Ovaj protokol omogućuje nove jezične značajke koje možemo koristiti i uključiti optimizacije.




U kodu navedenom u prethodnoj ilustraciji uvozi se prvi modul kiselih krastavaca. Zatim se inicijalizira rječnik jedne stavke s ključem i vrijednošću i pohranjuje u varijablu 'a'. U sljedećem retku, nova datoteka koja je 'info.p' otvara se u wb modu kao ručka. Sada se datoteka nalazi u objektu koji se zove 'ručka'. Zatim se koristi funkcija dump() za ''rukovanje' s rječnikom 'a' koristeći 'HIGHEST_PROTOCOL'. To omogućuje da se rječnik u 'a' spremi u datoteku 'info.p' na disku računala. Da biste izdvojili informacije iz datoteke, datoteka se najprije otvara u načinu rada 'rb'. Zatim se za ovu datoteku koristi metoda pickle load(). Vraćeni podaci spremaju se u atribut “b”. Konačno, pomoću naredbe za ispis, ove informacije se prikazuju na izlaznom čvoru, kao što se vidi na sljedećoj snimci zaslona:

Primjer 3: Serijalizacija i deserijalizacija popisa podataka u Pickle datoteci pomoću funkcije Pickle Dump i Load

U ovom primjeru prvo se uvozi modul pickle. Zatim se neki podaci umetnu u rječnik u obliku popisa i pohrane u varijablu 'shape_colors'. U sljedećem retku, metoda pickle dump() koristi se izravno s ovim podacima. Umjesto datoteke u parametru otvara se datoteka “info.p” u wb modu. Kao rezultat toga, podaci iz rječnika sada su bačeni u ovu datoteku koja je pohranjena na disku računala. Zatim se za čitanje podataka iz datoteke koristi metoda pickle load() na istoj datoteci. Vraćeni podaci spremaju se u varijablu “a”. Konačno, pomoću naredbe za ispis, ove informacije se prikazuju na sekundarnim terminalima, kao što je prikazano na sljedećoj snimci:



Primjer 4: Pohranjivanje informacija u Pickle datoteku korištenjem funkcija Pickle Dump i Load s različitim parametrima

U navedenom kodu uvozi se prvi modul kiselih krastavaca. Zatim se inicijalizira rječnik plaća i pohranjuje u varijablu 'plaće'. U sljedećem retku otvara se nova datoteka “salary.p” u wb modu kao ručica. Sada se datoteka nalazi u objektu koji se zove 'ručka'. Zatim se koristi pickle dump() funkcija za 'rukovanje' s rječnikom 'plaće' pomoću 'HIGHEST_PROTOCOL'. Ovo omogućuje spremanje rječnika u “plaćama” u datoteci “salary.p” na disk računala. Sada, kako bi se dohvatili podaci natrag iz datoteke, datoteka se prvo otvara u 'rb' modu. Zatim se za ovu datoteku koristi metoda pickle load(). Vraćene informacije spremaju se u varijablu “a”. U konačnici, korištenjem naredbe ispis, ti se podaci prikazuju na kraju izlaza kao što je prikazano na sljedećoj snimci:



Primjer 5: Serijalizacija i deserijalizacija podataka u više dimenzija u Pickle datoteci pomoću funkcije Pickle Dump i Load

Stvaranje DataFramesa (višedimenzionalnih tablica) u Pythonu zgodno je za testiranje novih metoda i funkcija koje se nalaze u Pandinom modulu Pythona. Postoje različite metode za izgradnju DataFramea od nule, ali jedna od najjednostavnijih je korištenje osnovnog rječnika.


U kodu navedenom u prethodnoj ilustraciji uvoze se prvi moduli pickle i Pandas. Zatim se pomoću metode pd.DataFrame() kreira višedimenzionalna tablica. Sljedeći atribut strategije je popis od četiri popisa. Svaki popis odgovara retku tablice. Drugi parametar je 'kolone' koji definira naslov svakog stupca u tablici. Ovaj DataFrame pohranjen je u 'pre'. Zatim se otvara nova datoteka koja je 'attendance.p' u wb modu i metoda pickle dump() se koristi na ovoj datoteci s DataFrameom. Sada su naši navedeni podaci pohranjeni u datoteci “attendance.p” na tvrdom disku računala.


Da bismo dohvatili podatke iz datoteke, otvaramo datoteku u rb modu koji omogućuje čitanje datoteke. Zatim se metoda pickle load() koristi u datoteci 'attendance.p'. Na kraju se podaci u datoteci prikazuju na izlaznom terminalu. Kao što vidimo, cijeli DataFrame se prikazuje na izlaznom terminalu koji je pohranjen u datoteci “attendance.p”.

Zaključak

Poduzmite dodatne mjere opreza kada radite s turpijama za kisele krastavce. Modulu kiselih krastavaca nedostaje sigurnost. Uklonite samo one podatke u koje ste sigurni. Moguće je stvoriti zlonamjerne podatke ukinutih koji bi mogli izvršiti proizvoljni kod tijekom procesa uklanjanja. Ipak, to je učinkovita metoda pohranjivanja rječnika, popisa i tablica u Pythonu. Kiseljenje je posebno korisno u analizi podataka kada izvršavate rutinske operacije na podacima kao što je prethodna obrada. Nadam se da vam je ovaj članak pomogao da saznate više o različitim metodama modula pickle u Pythonu i kako ga koristiti s rječnicima.