Hvordan syltede objekter i Python

Hvordan syltede objekter i Python
Eventuelle data kan serialiseres og deserialiseres i Python ved å bruke JSON og Pickle -modulen. Før du lagrer data i en fil, blir Python -objekter serialisert ved hjelp av Pickle -modulen. Python -objekter blir konvertert til karakterstrømmer ved å bruke denne modulen. Når brukeren ønsker å hente dataene fra filen for bruk av et annet Python -skript, blir dataene til filen deserialisert med Pickle -modulen. Funksjonene til Pickle -modulen og hvordan denne modulen kan brukes i Python -skript for serialisering og deserialisering er beskrevet i denne opplæringen.

Pickle -funksjoner:

  • Den er hovedsakelig designet for å bruke for Python -skript.
  • Det brukes til å lagre Python -objektene mellom prosessene.
  • Det holder oversikt over alle serialiserte objekter og objektet som er serialisert før, vil ikke serialisere igjen.
  • Det kan spare og gjenopprette klasseinstans gjennomførende.
  • Det er ikke sikkert å bruke. Så det er ikke bedre å fjerne data fra en ukjent kilde.

dump () for serialisering:

Dump () -funksjon brukes til å konvertere objektdataene til en tegnstrøm før du lagrer i en fil. Denne funksjonen kan ta tre argumenter. De to første argumentene er obligatoriske og det siste argumentet er valgfritt. Det første argumentet tar et dataobjekt som må serialisere. Det andre argumentet tar filbehandlerobjektet til den filen der de pckled dataene vil bli lagret. Det siste argumentet tar protokollnavnet.

Syntaks:

Dump (Data_Object, File_Object, [Protocol])

Last () For deserialisering:

Last () -funksjonen brukes til å konvertere karakterstrømdata fra filen til et Python -objekt. Denne funksjonen inneholder bare ett argument, og filbehandlerobjektet til filen passerer som argumentverdien der dataene vil bli hentet.

Syntaks:

Last (File_Object)

Pickle et enkelt objekt å lagre i en fil

Lag en fil som heter Pickle1.py Med følgende Python -skript. I det følgende skriptet, et dataobjekt som heter DataObject er erklært å lagre fem språknavn ved å iterere for -loopen. Neste, åpen () -metode brukes til å tilordne en filbehandler for å lage en binær fil som heter språk. dump () funksjon brukes her for å serialisere dataene til DataObject og lagre den i språk fil. Hvis serialiseringen vil bli gjort ordentlig, vil en melding, "data er serialisert" skrives ut.

# Importer pickle -modulen
Importer sylteagurk
# Erklære objektet for å lagre data
DataObject = []
# Itererer for loop for 5 ganger og ta språknavn
for n i rekkevidde (5):
rå = input ('Skriv inn et språknavn:')
DataObject.vedlegg (rå)
# Åpne en fil for å skrive data
file_handler = åpen ('språk', 'wb')
# Dump dataene til objektet i filen
Pickle.Dump (DataObject, File_Handler)
# Lukk filbehandleren for å frigjøre ressursene
file_handler.Lukk()
# Skriv ut melding
trykk ('Data er serialisert')

Produksjon:

Etter å ha kjørt skriptet, vil det ta fem språknavn som inndata.

Unpickle Data fra en fil

Unpickling Data er det motsatte av syltedata. Lag en fil som heter Pickle2.py Med følgende Python -skript. Her, åpen() Metoden brukes til å åpne den binære filen som heter språk, opprettet i forrige eksempel. laste() Funksjon brukes til å plyndre dataene fra filen og lagre dem i variabelen DataObject. NESTE, til Loop brukes iterere dataene fra DataObject og skriv ut i terminalen.

# Importer pickle -modulen
Importer sylteagurk
# Åpne en filbehandler for å lese en fil der dataene lastes inn
file_handler = åpen ('språk', 'rb')
# Last inn dataene fra filen etter deserialisering
DataObject = Pickle.Last (file_handler)
# Lukk filbehandleren
file_handler.Lukk()
# Skriv ut melding
trykk ('Data etter deserialisering')
# Iterere løkken for å skrive ut dataene etter deserialisering
For Val i DataObject:
Skriv ut ('Dataverdien:', Val)

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

Pickle et klasseobjekt til en fil

Hvordan et klasseobjekt kan syltet vises i følgende eksempel. Lag en fil som heter Pickle3.py med følgende skript. Her, Ansatt Klasse er erklært å tildele tre dataverdier for en ansatt. Deretter et filbehandlerobjekt som heter FileHandler er opprettet for å åpne en fil for skriving. Etter initialisering av klasseobjektet blir data serialisert ved bruk av dump () funksjon og lagret i filen som heter Ansatt. Hvis filen oppretter riktig, så er meldingen, “Data er serialisert” vil trykke.

# Importer sylteagurkmodul
Importer sylteagurk
# Forklar medarbeiderklassen for å lagre verdien
Klasseansatt:
def __init __ (selv, navn, e -post, innlegg):
selv-.Navn = Navn
selv-.E -post = e -post
selv-.POST = POST
#Create ansattobjekt
EmpObject = ansatt ('farheen', '[email protected] ',' manager ')
# Åpne fil for butikkdata
FileHandler = Open ('Employeedata', 'WB')
# Lagre dataene i filen
Pickle.Dump (Empobject, FileHandler)
# Lukk filen
FileHandler.Lukk()
# Skriv ut melding
trykk ('Data er serialisert')

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

Unpickle Data til et klasseobjekt

En klasse med nødvendige egenskaper og metoder vil kreve å erklære for å hente dataene fra en fil til et klasseobjekt. Lag en fil som heter Pickle4.py med følgende kode. Ansatt Klasse er definert her for å hente dataene. FileObject Variabel brukes til å åpne filen, Ansatt for lesing. NESTE, laste() Funksjon brukes til å lagre dataene i klasseobjektet etter deserialisering. vise() funksjon av Ansatt Klassen er kalt for å skrive ut dataverdiene til klasseobjektet.

# Importer sylteagurkmodul
Importer sylteagurk
# Erklære ansattsklasse til å lese og skrive ut data fra en fil
Klasseansatt:
def __init __ (selv, navn, e -post, innlegg):
selv-.Navn = Navn
selv-.E -post = e -post
selv-.POST = POST
def display (selv):
trykk ('Ansattes informasjon:')
trykk ('Navn:', selv.Navn)
Skriv ut ('E -post:', selv.e -post)
trykk ('Innlegg:', selv.post)
# Åpne filen for lesing
FileObject = Open ('Employeedata', 'RB')
# Unpickle dataene
Ansatt = sylteagurk.Last (FileObject)
# Lukk fil
FileObject.Lukk()
#trykk DataFrame
ansatt.vise()

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

Konklusjon

Pickle Module er et nyttig trekk ved Python for dataserialisering og deserialisering. Etter å ha fullført eksemplene som er vist i denne opplæringen, vil dataoverføringen fra ett Python -skript til et annet Python -skript være enklere for alle.