Pickle-woordenboek in Python

Pickle Woordenboek In Python



Pickle kan worden gebruikt om de Python-entiteitsframeworks voor te verwerken, wat het proces is van het converteren van een object uit het geheugen naar een bytestroom die als binair formaat op schijf kan worden opgeslagen. Deze procedure staat bekend als serialisatie. Gebruik hiervoor de pickle dump() methode. Wanneer dit binaire record opnieuw in een Python-programma wordt geladen, kan het worden gedeserialiseerd en weer worden geconverteerd naar een Python-object met behulp van de pickle load()-methode.

Dit artikel leert u hoe u de gegevens, meer specifiek een woordenboek, opslaat met behulp van de augurkmodule van Python. Om te beginnen moeten we de augurkmodule aanschaffen. Pickle dump() accepteert drie parameters. De eerste invoer specificeert de gegevens die moeten worden opgeslagen. De tweede parameter is het bestandsobject dat wordt geretourneerd wanneer een bestand wordt geopend in binaire schrijfmodus (wb). Het sleutel-waarde-argument is de derde parameter. Het protocol wordt bepaald door deze parameter. Een augurk is geclassificeerd in twee typen: HOOGSTE PROTOCOL en een augurk STANDAARD PROTOCOL. Om de gegevens op te halen of te deserialiseren, wordt de methode pickle load() gebruikt, waarmee een bestandsobject wordt verkregen door een bestand te openen in lees-binaire (rb)-modus.







Voorbeeld 1: Serialisatie en deserialisatie van gegevens in een Pickle-bestand met behulp van de Pickle Dump and Load-functie

In dit voorbeeld leren we hoe we de gegevens kunnen serialiseren en deserialiseren als een woordenboek met een zeer eenvoudige code.




In de code die in de vorige afbeelding wordt gepresenteerd, wordt de eerste augurkmodule uit de Python-bibliotheek geïmporteerd, zodat de methoden kunnen worden gebruikt. Vervolgens wordt een woordenboek met gegevens met 2 sleutels en waarden geïnitialiseerd en opgeslagen in de variabele met de naam 'shape'. In de volgende regel wordt de methode pickle dump() gebruikt om een ​​nieuw bestand te openen met de naam 'info.p' in binaire schrijfmodus (wb) en de 'vorm'-gegevens worden in dit bestand opgeslagen. In de volgende regel wordt de methode pickle load() gebruikt voor hetzelfde bestand waarin we de gegevens in de rb-modus hebben gedumpt. Dit retourneert onze woordenboekgegevens en wordt opgeslagen in de variabele met de naam 'a'. Ten slotte wordt dit geretourneerde object weergegeven op de uitvoerterminal met behulp van de printopdracht, zoals weergegeven in de volgende schermafbeelding.



We kunnen zien dat de gegevens eerst zijn opgeslagen in het bestand 'info.p' met behulp van de dumpmethode. Toen we vervolgens de methode load() voor hetzelfde bestand gebruikten, kregen we onze gegevens terug.





Voorbeeld 2: de Pickle Dump-functie gebruiken met een aanvullend protocol om de gegevens in Python te serialiseren

Dit is een soortgelijk voorbeeld waarin we een aanvullend protocol gebruiken, de 'HIGHEST_PROTOCOL', van augurk, het nieuwste protocol. Dit protocol maakt nieuwe taalfuncties mogelijk die we kunnen gebruiken en bevat optimalisaties.




In de code in de vorige afbeelding wordt de eerste augurkmodule geïmporteerd. Vervolgens wordt een woordenboek van één item met een sleutel en waarde geïnitialiseerd en opgeslagen in de variabele 'a'. In de volgende regel wordt een nieuw bestand, de 'info.p', geopend in wb-modus als een handvat. Nu bevindt het bestand zich in het object met de naam 'handle'. Vervolgens wordt de functie dump() gebruikt om het woordenboek 'a' af te handelen met behulp van de 'HIGHEST_PROTOCOL'. Hierdoor kan het woordenboek in 'a' worden opgeslagen in het bestand 'info.p' op de schijf van de computer. Om de informatie uit het bestand te halen, wordt het bestand eerst geopend in 'rb'-modus. Vervolgens wordt de methode pickle load() voor dit bestand gebruikt. De geretourneerde gegevens worden opgeslagen in het attribuut 'b'. Ten slotte wordt deze informatie met behulp van de afdrukopdracht weergegeven op het uitvoerknooppunt, zoals te zien is in de volgende schermafbeelding:

Voorbeeld 3: Serialisatie en deserialisatie van een lijst met gegevens in een Pickle-bestand met behulp van de Pickle Dump and Load-functie

In dit voorbeeld wordt eerst de augurkmodule geïmporteerd. Vervolgens worden sommige gegevens in een lijstindeling in een woordenboek ingevoegd en opgeslagen in de variabele 'shape_colors'. In de volgende regel wordt de methode pickle dump() rechtstreeks met deze gegevens gebruikt. In plaats van het bestand in zijn parameter wordt het bestand 'info.p' geopend in de wb-modus. Als gevolg hiervan worden de woordenboekgegevens nu gedumpt in dit bestand dat op de schijf van de computer wordt opgeslagen. Om vervolgens de gegevens uit het bestand te lezen, wordt de methode pickle load() op hetzelfde bestand gebruikt. De geretourneerde gegevens worden opgeslagen in de variabele 'a'. Ten slotte wordt deze informatie met behulp van de afdrukopdracht weergegeven op de secundaire terminals, zoals weergegeven in de volgende snapshot:



Voorbeeld 4: Informatie opslaan in een Pickle-bestand met behulp van de Pickle Dump- en Load-functies met verschillende parameters

In de verstrekte code wordt de eerste augurkmodule geïmporteerd. Vervolgens wordt een woordenboek met salarissen geïnitialiseerd en opgeslagen in de variabele 'salarissen'. In de volgende regel wordt een nieuw bestand 'salary.p' geopend in wb-modus als een handle. Nu bevindt het bestand zich in het object met de naam 'handle'. Vervolgens wordt de functie pickle dump() gebruikt om het woordenboek 'salarissen' te 'afhandelen' met behulp van de 'HIGHEST_PROTOCOL'. Hierdoor kan het woordenboek in 'salarissen' worden opgeslagen in het bestand 'salary.p' op de schijf van de computer. Om de gegevens terug te halen uit het bestand, wordt het bestand eerst geopend in 'rb' -modus. Vervolgens wordt de methode pickle load() voor dit bestand gebruikt. De teruggedraaide informatie wordt opgeslagen in de variabele 'a'. Uiteindelijk worden deze gegevens, door gebruik te maken van de afdrukopdracht, weergegeven aan de uitvoerzijde, zoals weergegeven in de volgende momentopname:



Voorbeeld 5: Serialisatie en deserialisatie van gegevens in meerdere dimensies in een Pickle-bestand met behulp van de Pickle Dump and Load-functie

Het maken van DataFrames (multidimensionale tabellen) in Python is handig voor het testen van nieuwe methoden en functies die te vinden zijn in de Panda-module van Python. Er zijn verschillende methoden om een ​​DataFrame helemaal opnieuw op te bouwen, maar een van de eenvoudigste is om een ​​basiswoordenboek te gebruiken.


In de code in de vorige afbeelding worden de eerste augurk- en Pandas-modules geïmporteerd. Vervolgens wordt een multidimensionale tabel gemaakt met behulp van de pd.DataFrame()-methode. Het volgende attribuut van de strategie is een lijst van vier lijsten. Elke lijst komt overeen met een rij van de tabel. De tweede parameter is 'kolommen' die de kop van elke kolom van de tabel definieert. Dit DataFrame wordt opgeslagen in 'pre'. Vervolgens wordt een nieuw bestand met de naam 'attendance.p' geopend in wb-modus en wordt de methode pickle dump() op dit bestand gebruikt met het DataFrame. Nu worden onze gespecificeerde gegevens opgeslagen in het bestand 'attendance.p' op de harde schijf van de computer.


Om de gegevens uit het bestand te halen, openen we het bestand in de rb-modus die het lezen van het bestand mogelijk maakt. Vervolgens wordt de methode pickle load() gebruikt in het bestand 'attendance.p'. Ten slotte worden de gegevens in het bestand weergegeven op de uitvoerterminal. Zoals we kunnen zien, wordt het hele DataFrame weergegeven op de uitvoerterminal die is opgeslagen in het bestand 'attendance.p'.

Conclusie

Neem extra voorzorgsmaatregelen bij het werken met augurkvijlen. De augurkmodule mist beveiliging. Unpickle alleen de gegevens waar u zeker van bent. Het is mogelijk om schadelijke pickle-gegevens te maken die tijdens het unpicking-proces willekeurige code kunnen uitvoeren. Het is niettemin een effectieve methode om woordenboeken, lijsten en tabellen in Python op te slaan. Beitsen is vooral handig bij gegevensanalyse wanneer u routinematige bewerkingen op de gegevens uitvoert, zoals voorbewerking. Ik hoop dat dit artikel je heeft geholpen om meer te weten te komen over de verschillende methoden van de augurkmodule van Python en hoe je deze kunt gebruiken met woordenboeken.