Kako kiseliti objekte u Pythonu

How Pickle Objects Python



Svi se podaci mogu serijski i deserijalizirati u Pythonu pomoću JSON i Pickle modula. Prije spremanja bilo kakvih podataka u datoteku, Python objekti se serijaliziraju pomoću modula pickle. Python objekti se pretvaraju u nizove znakova pomoću ovog modula. Kad korisnik želi dohvatiti podatke datoteke za korištenje druge python skripte, tada se podaci datoteke deserijaliziraju pomoću modula za kiselo. Značajke pickle modula i kako se ovaj modul može koristiti u python skripti za serializaciju i deserialization opisane su u ovom vodiču.

Značajke kiselih krastavaca:

  • Uglavnom je dizajniran za korištenje za Python skriptu.
  • Koristi se za spremanje python objekata između procesa.
  • On prati sve serijalizirane objekte, a objekt koji je prethodno serijaliziran neće se ponovno serijalizirati.
  • Transparentno može spremiti i vratiti instancu klase.
  • Nije sigurno koristiti. Dakle, nije bolje brisati podatke iz nepoznatog izvora.

dump () za serijalizaciju:

dump () funkcija koristi se za pretvaranje podataka objekta u niz znakova prije spremanja u datoteku. Ova funkcija može uzeti tri argumenta. Prva dva argumenta su obavezna, a posljednji nije obavezan. Prvi argument uzima podatkovni objekt koji se treba serijalizirati. Drugi argument uzima objekt rukovatelja datotekom te datoteke u koji će se pohraniti pokupljeni podaci. Posljednji argument uzima naziv protokola.







Sintaksa:



istovariti(data_object,file_object, [protokol])

load () za deserijalizaciju:

load () funkcija koristi se za pretvaranje podataka o prijenosu znakova iz datoteke u Python objekt. Ova funkcija sadrži samo jedan argument, a objekt za obradu datoteke datoteke prolazi kao vrijednost argumenta odakle će se podaci dohvatiti.



Sintaksa:





opterećenje(file_object)

Odaberite jednostavan objekt za pohranu u datoteku

Napravite datoteku pod nazivom pickle1.py sa sljedećom python skriptom. U sljedećoj skripti, objekt podataka pod nazivom dataObject je deklarirano da pohranjuje pet naziva jezika ponavljanjem for petlje. Zatim se metoda open () koristi za dodjeljivanje rukovatelja datotekama za stvaranje binarne datoteke s imenom Jezici. istovariti() Funkcija se ovdje koristi za serijalizaciju podataka datoteke dataObject i pohraniti u Jezici datoteka. Ako će serializacija biti pravilno izvedena, ispisat će se poruka Data serialized.

# Uvezite modul za turšiju
uvoz turšija

# Proglasite objekt za pohranu podataka
dataObject= []

# Ponovite for petlju 5 puta i uzmite nazive jezika
zanu domet(5):
sirovo= ulazni('Unesite naziv jezika:')

dataObject.dodati(sirovo)

# Otvorite datoteku za pisanje podataka
file_handler= otvorena('Jezici', 'wb')

# Umetnite podatke objekta u datoteku
turšija.istovariti(dataObject,file_handler)

# zatvorite rukovatelj datotekama da biste oslobodili resurse
file_handler.Zatvoriti()

# Ispis poruke
ispisati('Podaci su serijski')

Izlaz:



Nakon pokretanja skripte, za unos će trebati pet naziva jezika.

Poništite brisanje podataka iz datoteke

poništavanje podataka suprotnost je kiseljenju podataka. Napravite datoteku pod nazivom pickle2.py sa sljedećom python skriptom. Ovdje, otvorena() Metoda se koristi za otvaranje binarne datoteke s imenom Jezici , stvoreno u prethodnom primjeru. opterećenje() funkcija se koristi za uklanjanje podataka iz datoteke i njihovo spremanje u varijablu dataObject . Sljedeći, za loop koristi se za ponavljanje podataka iz dataObject i ispisati u terminalu.

# Uvezite modul za turšiju
uvoz turšija

# Otvorite rukovatelj datotekama za čitanje datoteke odakle će se podaci učitati
file_handler= otvorena('Jezici', 'rb')

# Učitajte podatke iz datoteke nakon deserializacije
dataObject= turšija.opterećenje(file_handler)

# Zatvorite rukovatelj datotekama
file_handler.Zatvoriti()

# Ispis poruke
ispisati('Podaci nakon deserijalizacije')

# Ponovite petlju za ispis podataka nakon deserijalizacije
zasatiudataObject:
ispisati('Vrijednost podataka:',sati)

Izlaz:

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Odaberite objekt klase u datoteku

Kako se objekt klase može ukiseliti prikazan je u sljedećem primjeru. Napravite datoteku pod nazivom pickle3.py sa sljedećom skriptom. Ovdje, Zaposlenik klasa je deklarirana da dodjeljuje tri vrijednosti podataka zaposlenika. Zatim, objekt za rukovanje datotekama pod nazivom fileHandler je stvoren za otvaranje datoteke za pisanje. Nakon inicijalizacije objekta klase, podaci se serijaliziraju pomoću istovariti() funkciju i pohranjena u datoteku s imenom zaposlenikPodaci . Ako će se datoteka pravilno izraditi, poruka, Podaci se serijaliziraju ispisat će.

# Uvoz modula za turšiju
uvoz turšija

# Proglasite klasu zaposlenika za spremanje vrijednosti
razredZaposlenik:
def __u tome__(sebe,Ime, e -mail,post):
sebe.Ime =Ime
sebe.e -mail = e -mail
sebe.post =post

#Napravite objekt zaposlenika
empObject=Zaposlenik('Farheen', '[zaštićena e -pošta]', 'Menadžer')

# Otvorite datoteku za podatke o trgovini
fileHandler= otvorena('Podaci o zaposleniku', 'wb')

# Spremite podatke u datoteku
turšija.istovariti(empObject,fileHandler)

# Zatvorite datoteku
fileHandler.Zatvoriti()

# Ispis poruke
ispisati('Podaci su serijski')

Izlaz:

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Uklonite podatke iz predmeta klase

Klasa s potrebnim svojstvima i metodama zahtijevat će deklaraciju za dohvaćanje podataka iz datoteke u objekt klase. Napravite datoteku pod nazivom pickle4.py sa sljedećim kodom. Zaposlenik Ovdje je definirana klasa za dohvaćanje podataka. fileObject varijabla se koristi za otvaranje datoteke, zaposlenikPodaci za čitanje. Sljedeći, opterećenje() funkcija se koristi za spremanje podataka u objekt klase nakon deserijalizacije. prikaz() funkciju Zaposlenik class se poziva za ispis vrijednosti podataka objekta klase.

# Uvoz modula za turšiju
uvoz turšija

# Deklarirajte klasu zaposlenika za čitanje i ispis podataka iz datoteke
razredZaposlenik:
def __u tome__(sebe,Ime, e -mail,post):
sebe.Ime =Ime
sebe.e -mail = e -mail
sebe.post =post

defprikaz(sebe):
ispisati('Podaci o zaposlenicima:')
ispisati('Ime :', sebe.Ime)
ispisati('E -pošta:', sebe.e -mail)
ispisati('Post:', sebe.post)

# Otvorite datoteku za čitanje
fileObject= otvorena('Podaci o zaposleniku', 'rb')

# Opozovite brisanje podataka
zaposlenik= turšija.opterećenje(fileObject)

# Zatvori datoteku
fileObject.Zatvoriti()

#ispišite okvir podataka
zaposlenik.prikaz()

Izlaz:

Sljedeći izlaz pojavit će se nakon pokretanja skripte.

Zaključak

Modul Pickle korisna je značajka pythona za serijalizaciju i deserijalizaciju podataka. Nakon što dovrše primjere prikazane u ovom vodiču, prijenos podataka iz jedne python skripte u drugu python skriptu bit će lakši za svakoga.