Pickle Dictionary v Pythonu

Pickle Dictionary V Pythonu



Pickle se lahko uporablja za predhodno obdelavo ogrodij entitet Python, ki je postopek pretvorbe predmeta iz pomnilnika v tok bajtov, ki ga je mogoče shraniti na disk kot binarni format. Ta postopek je znan kot serializacija. Če želite to doseči, uporabite metodo pickle dump(). Ko se ta binarni zapis znova naloži v program Python, ga je mogoče deserializirati in pretvoriti nazaj v objekt Python z uporabo metode pickle load().

Ta članek vas nauči, kako shraniti podatke, natančneje slovar, z uporabo Pythonovega modula pickle. Za začetek moramo nabaviti modul kislih kumaric. Pickle dump() sprejema tri parametre. Prvi vnos podaja podatke za shranjevanje. Drugi parameter je datotečni objekt, ki je vrnjen, ko je datoteka odprta v zapisovalno-binarnem (wb) načinu. Argument ključ-vrednost je tretji parameter. Protokol je definiran s tem parametrom. Kisla kumarica je razvrščena v dve vrsti: NAJVIŠJI PROTOKOL in kisla kumarica PRIVZETI PROTOKOL. Za pridobitev ali deserializacijo podatkov se uporabi metoda pickle load(), prek katere se datotečni objekt pridobi z odpiranjem datoteke v načinu za branje-binarni (rb).







Primer 1: Serializacija in deserializacija podatkov v datoteki Pickle z uporabo funkcije Pickle Dump in Load

V tem primeru se bomo naučili serializirati in deserializirati podatke kot slovar z zelo preprosto kodo.




V kodi, predstavljeni na prejšnji ilustraciji, je prvi modul pickle iz knjižnice Python uvožen, tako da je mogoče uporabiti njegove metode. Nato se slovar podatkov z 2 ključema in vrednostma inicializira in shrani v spremenljivko z imenom »shape«. V naslednji vrstici je metoda pickle dump() uporabljena za odpiranje nove datoteke z imenom »info.p« v zapisovalnem binarnem (wb) načinu in podatki »shape« so shranjeni v tej datoteki. V naslednji vrstici je metoda pickle load() uporabljena za isto datoteko, v katero smo izpustili podatke v načinu rb. To vrne podatke našega slovarja in je shranjeno v spremenljivki z imenom »a«. Na koncu je ta vrnjeni objekt prikazan na izhodnem terminalu z uporabo ukaza za tiskanje, kot je prikazano na naslednjem posnetku zaslona.



Vidimo lahko, da so bili podatki najprej shranjeni v datoteko 'info.p' z uporabo metode dump. Potem, ko smo uporabili metodo load() za isto datoteko, smo dobili nazaj naše podatke.





2. primer: uporaba funkcije Pickle Dump z dodatnim protokolom za serializacijo podatkov v Pythonu

To je podoben primer, v katerem uporabljamo dodatni protokol, »HIGHEST_PROTOCOL« za pickle, ki je najnovejši protokol. Ta protokol omogoča nove jezikovne funkcije, ki jih lahko uporabljamo in vključujejo optimizacije.




V kodi na prejšnji ilustraciji je uvožen prvi modul pickle. Nato se slovar ene postavke s ključem in vrednostjo inicializira in shrani v spremenljivko 'a'. V naslednji vrstici se nova datoteka, ki je 'info.p', odpre v načinu wb kot ročaj. Zdaj je datoteka v objektu, imenovanem »ročaj«. Nato se uporabi funkcija dump() za »obravnavo« s slovarjem »a« z uporabo »HIGHEST_PROTOCOL«. To omogoča, da se slovar v 'a' shrani v datoteko 'info.p' na disku računalnika. Če želite ekstrahirati podatke iz datoteke, datoteko najprej odprete v načinu »rb«. Nato se za to datoteko uporabi metoda pickle load(). Vrnjeni podatki se shranijo v atribut “b”. Končno se z uporabo ukaza za tiskanje te informacije prikažejo v izhodnem vozlišču, kot je razvidno iz naslednjega posnetka zaslona:

Primer 3: Serializacija in deserializacija seznama podatkov v datoteki Pickle z uporabo funkcije Pickle Dump in Load

V tem primeru je najprej uvožen modul pickle. Nato se nekateri podatki vstavijo v slovar v obliki seznama in shranijo v spremenljivko »shape_colors«. V naslednji vrstici je metoda pickle dump() uporabljena neposredno s temi podatki. Namesto datoteke v njenem parametru se v načinu wb odpre datoteka »info.p«. Posledično so podatki iz slovarja zdaj odloženi v to datoteko, ki je shranjena na disku računalnika. Nato se za branje podatkov iz datoteke v isti datoteki uporabi metoda pickle load(). Vrnjeni podatki se shranijo v spremenljivko “a”. Končno se z uporabo ukaza za tiskanje te informacije prikažejo na sekundarnih terminalih, kot je prikazano na naslednjem posnetku:



Primer 4: Shranjevanje informacij v datoteko Pickle z uporabo funkcij Pickle Dump in Load z različnimi parametri

V podani kodi je uvožen prvi modul kumarice. Nato se inicializira slovar plač in shrani v spremenljivko »plače«. V naslednji vrstici se kot ročaj odpre nova datoteka »salary.p« v načinu wb. Zdaj je datoteka v objektu, imenovanem »ročaj«. Nato se funkcija pickle dump() uporabi za »obravnavo« s slovarjem »plače« z uporabo »HIGHEST_PROTOCOL«. To omogoča, da se slovar v »plačah« shrani v datoteko »salary.p« na disk računalnika. Zdaj, da bi pridobili podatke nazaj iz datoteke, se datoteka najprej odpre v načinu 'rb'. Nato se za to datoteko uporabi metoda pickle load(). Povrnjene informacije se shranijo v spremenljivko 'a'. Končno se z uporabo ukaza za tiskanje ti podatki prikažejo na izhodnem koncu, kot je prikazano na naslednjem posnetku:



Primer 5: Serializacija in deserializacija podatkov v več dimenzijah v datoteki Pickle z uporabo funkcije Pickle Dump in Load

Ustvarjanje DataFrames (večdimenzionalnih tabel) v Pythonu je priročno za preizkušanje novih metod in funkcij, ki jih najdemo v Pandinem modulu Pythona. Obstaja več načinov za izdelavo DataFrame iz nič, vendar je eden najpreprostejših uporaba osnovnega slovarja.


V kodi na prejšnji ilustraciji sta uvožena prva modula pickle in Pandas. Nato se z metodo pd.DataFrame() ustvari večdimenzionalna tabela. Naslednji atribut strategije je seznam štirih seznamov. Vsak seznam ustreza vrstici tabele. Drugi parameter je 'stolpci', ki določa naslov vsakega stolpca v tabeli. Ta DataFrame je shranjen v »pre«. Nato se v načinu wb odpre nova datoteka, ki je »attendance.p«, in za to datoteko z DataFrame se uporabi metoda pickle dump(). Zdaj so naši podani podatki shranjeni v datoteki »attendance.p« na trdem disku računalnika.


Za pridobitev podatkov iz datoteke odpremo datoteko v načinu rb, ki omogoča branje datoteke. Nato se v datoteki »attendance.p« uporabi metoda pickle load(). Končno se podatki v datoteki prikažejo na izhodnem terminalu. Kot lahko vidimo, je celoten DataFrame prikazan na izhodnem terminalu, ki je shranjen v datoteki »attendance.p«.

Zaključek

Pri delu s pilami za kisle kumarice bodite posebej previdni. Modulu Pickle manjka varnosti. Odstranite samo tiste podatke, v katere ste prepričani. Možno je ustvariti zlonamerne podatke za pikiranje, ki lahko med postopkom odstranjevanja izvedejo poljubno kodo. Kljub temu je to učinkovita metoda shranjevanja slovarjev, seznamov in tabel v Pythonu. Luženje je še posebej koristno pri analizi podatkov, ko izvajate rutinske operacije na podatkih, kot je predhodna obdelava. Upam, da vam je ta članek pomagal spoznati različne metode modula pickle v Pythonu in kako ga uporabljati s slovarji.