Pickle Dictionary sa Python

Pickle Dictionary Sa Python



Maaaring gamitin ang pickle upang paunang iproseso ang mga balangkas ng entity ng Python na siyang proseso ng pag-convert ng isang bagay mula sa memorya sa isang byte stream na maaaring i-save sa disc bilang isang binary na format. Ang pamamaraang ito ay kilala bilang serialization. Para magawa ito, gamitin ang pickle dump() method. Kapag na-load muli ang binary record na ito sa isang Python program , maaari itong i-de-serialize at i-convert pabalik sa isang Python object gamit ang pickle load() na paraan.

Ang artikulong ito ay nagtuturo sa iyo kung paano mag-imbak ng data, mas partikular na isang diksyunaryo, gamit ang Python's pickle module. Upang magsimula, kailangan nating kunin ang module ng atsara. Ang pickle dump() ay tumatanggap ng tatlong parameter. Tinutukoy ng unang input ang data na ise-save. Ang pangalawang parameter ay ang file object na ibinalik kapag ang isang file ay binuksan sa write-binary (wb) mode. Ang key-value argument ay ang ikatlong parameter. Ang protocol ay tinukoy ng parameter na ito. Ang isang atsara ay inuri sa dalawang uri: PINAKAMATAAS NA PROTOCOL pati na rin ang isang atsara DEFAULT PROTOCOL. Upang makuha o deserialize ang data, ginagamit ang pickle load() na paraan kung saan nakuha ang file object sa pamamagitan ng pagbubukas ng file sa read-binary (rb) mode.







Halimbawa 1: Serialization at Deserialization ng Data sa isang Pickle File Gamit ang Pickle Dump at Load Function

Sa halimbawang ito, matututunan natin kung paano i-serialize at i-deserialize ang data bilang isang diksyunaryo na may napakasimpleng code.




Sa code na ipinakita sa nakaraang paglalarawan, ang unang module ng atsara mula sa library ng Python ay na-import upang magamit ang mga pamamaraan nito. Pagkatapos, ang isang diksyunaryo ng data na may 2 key at value ay sinisimulan at iniimbak sa variable na pinangalanang 'hugis'. Sa susunod na linya, ang pickle dump() na paraan ay ginagamit upang magbukas ng bagong file na may pangalang 'info.p' sa write-binary (wb) mode at ang 'hugis' na data ay nakaimbak sa file na ito. Sa susunod na linya, ang pickle load() method ay ginagamit para sa parehong file kung saan namin itinapon ang data sa rb mode. Ibinabalik nito ang aming data ng diksyunaryo at iniimbak sa variable na pinangalanang 'a'. Sa wakas, ang ibinalik na bagay na ito ay ipinapakita sa output terminal gamit ang print command tulad ng ipinapakita sa sumusunod na screenshot.



Makikita natin na ang data ay unang naimbak sa “info.p” file gamit ang dump method. Pagkatapos, kapag ginamit namin ang paraan ng load() sa parehong file, nakuha namin ang aming data.





Halimbawa 2: Paggamit ng Pickle Dump Function na may Karagdagang Protocol para i-serialize ang Data sa Python

Ito ay isang katulad na halimbawa kung saan gumagamit kami ng karagdagang protocol, ang 'HIGHEST_PROTOCOL', ng pickle na siyang pinakabagong protocol. Ang protocol na ito ay nagbibigay-daan sa mga bagong feature ng wika na maaari naming gamitin at isama ang mga pag-optimize.




Sa code na ibinigay sa nakaraang paglalarawan, ang unang module ng atsara ay na-import. Pagkatapos, ang isang diksyunaryo ng isang item na may susi at halaga ay sinisimulan at iniimbak sa variable na 'a'. Sa susunod na linya, isang bagong file na kung saan ay ang 'info.p' ay binuksan sa wb mode bilang isang hawakan. Ngayon, ang file ay nasa object na tinatawag na 'handle'. Pagkatapos, ang dump() function ay ginagamit upang''pangasiwaan' ang diksyunaryo na 'a' gamit ang 'HIGHEST_PROTOCOL'. Pinapayagan nito ang diksyunaryo sa 'a' na ma-save sa 'info.p' na file sa disk ng computer. Para i-extract ang impormasyon mula sa file, bubuksan muna ang file sa 'rb' mode. Pagkatapos, ang pickle load() na paraan ay ginagamit para sa file na ito. Ang ibinalik na data ay nai-save sa katangiang 'b'. Sa wakas, gamit ang print command, ang impormasyong ito ay ipinapakita sa output node, tulad ng nakikita sa sumusunod na screen capture:

Halimbawa 3: Serialization at Deserialization ng isang Listahan ng Data sa isang Pickle File Gamit ang Pickle Dump at Load Function

Sa halimbawang ito, unang na-import ang module ng atsara. Pagkatapos, ang ilang data ay ipinapasok sa isang diksyunaryo sa isang format ng listahan at iniimbak sa variable na 'shape_colors'. Sa susunod na linya, ang pickle dump() na paraan ay direktang ginagamit sa data na ito. Sa lugar ng file sa parameter nito, ang 'info.p' na file ay binuksan sa wb mode. Bilang resulta, ang data ng diksyunaryo ay itinapon na ngayon sa file na ito na nakaimbak sa disk ng computer. Pagkatapos, para basahin ang data mula sa file, ang pickle load() na paraan ay ginagamit sa parehong file. Ang ibinalik na data ay nai-save sa variable na 'a'. Sa wakas, gamit ang print command, ang impormasyong ito ay ipinapakita sa mga pangalawang terminal, tulad ng inilalarawan sa sumusunod na snapshot:



Halimbawa 4: Pag-iimbak ng Impormasyon sa isang Pickle File Gamit ang Pickle Dump at Load Function na may Iba't ibang Parameter

Sa ibinigay na code, ang unang module ng atsara ay na-import. Pagkatapos, ang isang diksyunaryo ng mga suweldo ay sinisimulan at iniimbak sa variable na 'suweldo'. Sa susunod na linya, ang isang bagong file na 'salary.p' ay binuksan sa wb mode bilang isang hawakan. Ngayon, ang file ay nasa object na tinatawag na 'handle'. Pagkatapos, ang function ng pickle dump() ay ginagamit upang 'hawakan' ang diksyunaryo ng 'suweldo' gamit ang 'HIGHEST_PROTOCOL'. Nagbibigay-daan ito sa diksyunaryo sa 'suweldo' na ma-save sa 'salary.p' na file sa disk ng computer. Ngayon, upang mabawi ang data pabalik mula sa file, ang file ay unang binuksan sa 'rb' mode. Pagkatapos, ang pickle load() na paraan ay ginagamit para sa file na ito. Ang ibinalik na impormasyon ay naka-save sa variable na 'a'. Sa huli, sa pamamagitan ng paggamit sa print command, ipinapakita ang data na ito sa dulo ng output gaya ng ipinapakita sa sumusunod na snapshot:



Halimbawa 5: Serialization at Deserialization ng Data sa Maramihang Dimensyon sa isang Pickle File Gamit ang Pickle Dump at Load Function

Ang paglikha ng DataFrames (multi-dimensional na mga talahanayan) sa Python ay madaling gamitin para sa pagsubok ng mga bagong pamamaraan at function na matatagpuan sa module ng Python ng Panda. Mayroong iba't ibang mga paraan upang bumuo ng isang DataFrame mula sa simula, ngunit ang isa sa pinakasimpleng ay ang paggamit ng isang pangunahing diksyunaryo.


Sa code na ibinigay sa nakaraang paglalarawan, ang unang atsara at Pandas modules ay na-import. Pagkatapos, ang isang multi-dimensional na talahanayan ay nilikha gamit ang pd.DataFrame() na pamamaraan. Ang susunod na katangian ng diskarte ay isang listahan ng apat na listahan. Ang bawat listahan ay tumutugma sa isang hilera ng talahanayan. Ang pangalawang parameter ay 'columns' na tumutukoy sa heading ng bawat column ng table. Ang DataFrame na ito ay naka-imbak sa 'pre'. Pagkatapos, ang isang bagong file na 'attendance.p' ay binuksan sa wb mode at ang pickle dump() na paraan ay ginagamit sa file na ito gamit ang DataFrame. Ngayon, ang aming tinukoy na data ay naka-imbak sa 'attendance.p' na file sa hard disk ng computer.


Upang makuha ang data mula sa file, binubuksan namin ang file sa rb mode na nagbibigay-daan sa pagbabasa ng file. Pagkatapos, ang pickle load() na paraan ay ginagamit sa 'attendance.p' na file. Sa wakas, ang data sa file ay ipinapakita sa output terminal. Tulad ng nakikita natin, ang buong DataFrame ay ipinapakita sa output terminal na naka-imbak sa 'attendance.p' na file.

Konklusyon

Gumawa ng mga karagdagang pag-iingat kapag nagtatrabaho sa mga file ng atsara. Walang seguridad ang module ng atsara. I-unpickle lang ang data kung saan ka nagtitiwala. Posibleng gumawa ng malisyosong data ng pickle na maaaring magsagawa ng arbitrary code sa panahon ng proseso ng pag-unpickle. Gayunpaman, ito ay isang epektibong paraan ng pag-iimbak ng mga diksyunaryo, listahan, at talahanayan sa Python. Ang pag-aatsara ay lalong kapaki-pakinabang sa pagsusuri ng data kapag nagsasagawa ka ng mga karaniwang operasyon sa data tulad ng paunang pagproseso. Umaasa akong nakatulong ang artikulong ito sa iyo na malaman ang tungkol sa iba't ibang paraan ng pickle module ng Python at kung paano ito gamitin sa mga diksyunaryo.