Pickle vārdnīca Python valodā

Pickle Vardnica Python Valoda



Pickle var izmantot, lai iepriekš apstrādātu Python entītiju ietvarus, kas ir process, kurā objektu no atmiņas pārvērš baitu straumē, ko var saglabāt diskā kā bināro formātu. Šī procedūra ir pazīstama kā serializācija. Lai to paveiktu, izmantojiet marinēšanas dump() metodi. Kad šis binārais ieraksts atkal tiek ielādēts Python programmā, to var deserializēt un pārvērst atpakaļ par Python objektu, izmantojot metodi pickle load().

Šajā rakstā ir aprakstīts, kā saglabāt datus, konkrētāk, vārdnīcu, izmantojot Python marinēšanas moduli. Lai sāktu, mums ir jāiegādājas marinēšanas modulis. Pickle dump() pieņem trīs parametrus. Pirmā ievade norāda saglabājamos datus. Otrais parametrs ir faila objekts, kas tiek atgriezts, kad fails tiek atvērts rakstīšanas-binārajā (wb) režīmā. Atslēgas vērtības arguments ir trešais parametrs. Protokolu nosaka šis parametrs. Marinēti gurķi tiek klasificēti divos veidos: AUGSTĀKAIS PROTOKOLS, kā arī marinētais gurķis NOKLUSĒJUMA PROTOKOLS. Lai izgūtu vai deserializētu datus, tiek izmantota metode pickle load(), ar kuras palīdzību tiek iegūts faila objekts, atverot failu lasīšanas-binārajā (rb) režīmā.







1. piemērs. Datu serializācija un deserializācija marinēšanas failā, izmantojot funkciju Pickle Dump and Load

Šajā piemērā mēs uzzināsim, kā serializēt un deserializēt datus kā vārdnīcu ar ļoti vienkāršu kodu.




Kodā, kas parādīts iepriekšējā attēlā, pirmais marinēšanas modulis no Python bibliotēkas ir importēts, lai varētu izmantot tā metodes. Pēc tam tiek inicializēta datu vārdnīca ar 2 atslēgām un vērtībām un saglabāta mainīgajā ar nosaukumu “shape”. Nākamajā rindā tiek izmantota metode pickle dump(), lai atvērtu jaunu failu ar nosaukumu “info.p” rakstīšanas-binārajā (wb) režīmā, un šajā failā tiek saglabāti “shape” dati. Nākamajā rindiņā metode pickle load() tiek izmantota tam pašam failam, kurā tika ievadīti dati rb režīmā. Tas atgriež mūsu vārdnīcas datus un tiek saglabāti mainīgajā ar nosaukumu “a”. Visbeidzot, šis atgrieztais objekts tiek parādīts izvades terminālī, izmantojot drukāšanas komandu, kā parādīts nākamajā ekrānuzņēmumā.



Mēs redzam, ka dati vispirms tika saglabāti failā “info.p”, izmantojot dump metodi. Kad tam pašam failam izmantojām metodi load (), mēs atguvām savus datus.





2. piemērs: Funkcijas Pickle Dump izmantošana ar papildu protokolu, lai serializētu datus programmā Python

Šis ir līdzīgs piemērs, kurā mēs izmantojam marinēšanas papildu protokolu “HIGHEST_PROTOCOL”, kas ir jaunākais protokols. Šis protokols nodrošina jaunas valodas funkcijas, kuras varam izmantot, un ietver optimizācijas.




Iepriekšējā attēlā norādītajā kodā tiek importēts pirmais kodināšanas modulis. Pēc tam viena vienuma vārdnīca ar atslēgu un vērtību tiek inicializēta un saglabāta mainīgajā “a”. Nākamajā rindā wb režīmā kā rokturis tiek atvērts jauns fails, kas ir “info.p”. Tagad fails atrodas objektā ar nosaukumu “rokturis”. Pēc tam funkcija dump() tiek izmantota, lai 'apstrādātu' ar vārdnīcu 'a', izmantojot 'HIGHEST_PROTOCOL'. Tas ļauj saglabāt vārdnīcu “a” failā “info.p” datora diskā. Lai izvilktu informāciju no faila, vispirms fails tiek atvērts rb režīmā. Pēc tam šim failam tiek izmantota metode pickle load(). Atgrieztie dati tiek saglabāti atribūtā “b”. Visbeidzot, izmantojot drukāšanas komandu, šī informācija tiek parādīta izvades mezglā, kā redzams šādā ekrāna tverā:

3. piemērs. Datu saraksta serializācija un deserializācija marinēšanas failā, izmantojot funkciju Pickle Dump and Load

Šajā piemērā vispirms tiek importēts kodināšanas modulis. Pēc tam daži dati tiek ievietoti vārdnīcā saraksta formātā un saglabāti mainīgajā “shape_colors”. Nākamajā rindā ar šiem datiem tiek izmantota metode marinēšanas dump(). Faila vietā tā parametrā fails “info.p” tiek atvērts wb režīmā. Rezultātā vārdnīcas dati tagad tiek ievietoti šajā failā, kas tiek saglabāts datora diskā. Pēc tam, lai nolasītu datus no faila, tajā pašā failā tiek izmantota metode pickle load(). Atgrieztie dati tiek saglabāti mainīgajā “a”. Visbeidzot, izmantojot drukāšanas komandu, šī informācija tiek parādīta sekundārajos termināļos, kā parādīts šajā momentuzņēmumā:



4. piemērs: informācijas glabāšana sālīšanas failā, izmantojot marinēšanas izgāztuves un ielādes funkcijas ar dažādiem parametriem

Norādītajā kodā tiek importēts pirmais kodināšanas modulis. Pēc tam tiek inicializēta algu vārdnīca un saglabāta mainīgajā “algas”. Nākamajā rindā wb režīmā kā rokturis tiek atvērts jauns fails “alga.p”. Tagad fails atrodas objektā ar nosaukumu “rokturis”. Pēc tam funkcija pickle dump() tiek izmantota, lai “apstrādātu” ar vārdnīcu “algas”, izmantojot “HIGHEST_PROTOCOL”. Tas ļauj saglabāt vārdnīcu “algas” failā “alga.p” datora diskā. Tagad, lai izgūtu datus atpakaļ no faila, fails vispirms tiek atvērts “rb” režīmā. Pēc tam šim failam tiek izmantota metode pickle load(). Atgrieztā informācija tiek saglabāta mainīgajā “a”. Galu galā, izmantojot drukāšanas komandu, šie dati tiek parādīti izvades galā, kā parādīts šajā momentuzņēmumā:



5. piemērs: vairāku dimensiju datu serializācija un deserializācija sālīšanas failā, izmantojot funkciju Pickle Dump and Load

DataFrames (daudzdimensiju tabulu) izveide programmā Python ir ērta, lai pārbaudītu jaunas metodes un funkcijas, kas atrodamas Python Panda modulī. Ir dažādas metodes, kā izveidot DataFrame no jauna, taču viena no vienkāršākajām ir izmantot pamata vārdnīcu.


Kodā, kas sniegts iepriekšējā attēlā, tiek importēti pirmie marinēti gurķi un Pandas moduļi. Pēc tam, izmantojot pd.DataFrame() metodi, tiek izveidota daudzdimensiju tabula. Nākamais stratēģijas atribūts ir četru sarakstu saraksts. Katrs saraksts atbilst tabulas rindai. Otrais parametrs ir “kolonnas”, kas nosaka katras tabulas kolonnas virsrakstu. Šis DataFrame tiek saglabāts “iepriekš”. Pēc tam wb režīmā tiek atvērts jauns fails, kas ir “attendance.p”, un šim failam ar DataFrame tiek izmantota metode pickle dump(). Tagad mūsu norādītie dati tiek saglabāti datora cietā diska failā “attendance.p”.


Lai izgūtu datus no faila, mēs atveram failu rb režīmā, kas ļauj nolasīt failu. Pēc tam failā “attendance.p” tiek izmantota marinēšanas slodzes () metode. Visbeidzot, faila dati tiek parādīti izvades terminālī. Kā redzam, viss DataFrame tiek parādīts izvades terminālī, kas tiek saglabāts failā “attendance.p”.

Secinājums

Veicot papildu piesardzības pasākumus, strādājot ar sālījumu failiem. Marinēšanas modulim trūkst drošības. Atbrīvojiet tikai tos datus, par kuriem esat pārliecināts. Ir iespējams izveidot ļaunprātīgus kodināšanas datus, kas izņemšanas procesa laikā var izpildīt patvaļīgu kodu. Tomēr tā ir efektīva metode vārdnīcu, sarakstu un tabulu saglabāšanai Python. Kodināšana ir īpaši izdevīga datu analīzē, kad veicat ikdienas darbības ar datiem, piemēram, iepriekšēju apstrādi. Es ceru, ka šis raksts palīdzēja jums uzzināt par dažādām Python marinēšanas moduļa metodēm un to, kā to izmantot vārdnīcās.