Kako lužiti predmete v Pythonu

How Pickle Objects Python



Vse podatke je mogoče v Pythonu serijsko in deserializirati z uporabo JSON in Pickle modula. Pred shranjevanjem kakršnih koli podatkov v datoteko se predmeti Python serializirajo z modulom pickle. Objekti Python se s tem modulom pretvorijo v znakovne tokove. Ko uporabnik želi pridobiti podatke datoteke za uporabo drugega python skripta, se podatki datoteke deserializirajo z modulom pickle. Značilnosti modula pickle in način uporabe tega modula v skriptu python za serializacijo in deserializacijo so opisane v tej vadnici.

Značilnosti kumaric:

  • Zasnovan je predvsem za skript Python.
  • Uporablja se za shranjevanje predmetov python med procesi.
  • Spremlja vse zaporedne objekte in predmet, ki je bil pred tem serijaliziran, se ne bo več serijaliziral.
  • Transparentno lahko shrani in obnovi primerek razreda.
  • Uporaba ni varna. Zato ni bolje, da izbrišete podatke iz neznanega vira.

dump () za serijalizacijo:

dump () se uporablja za pretvorbo podatkov o objektu v tok znakov pred shranjevanjem v datoteko. Ta funkcija lahko sprejme tri argumente. Prva dva argumenta sta obvezna, zadnji pa neobvezen. Prvi argument vzame podatkovni objekt, ki ga je treba serijalizirati. Drugi argument prevzame objekt upravljavca datotek te datoteke, kamor bodo shranjeni zbrani podatki. Zadnji argument ima ime protokola.







Sintaksa:



odlagališče(data_object,file_object, [protokol])

load () za deserializacijo:

load () se uporablja za pretvorbo podatkovnih tokovnih datotek iz datoteke v objekt Python. Ta funkcija vsebuje samo en argument in objekt upravljalnika datotek datoteke prehaja kot vrednost argumenta, od koder bodo podatki pridobljeni.



Sintaksa:





obremenitev(file_object)

Izberite preprost predmet, ki ga shranite v datoteko

Ustvarite datoteko z imenom pickle1.py z naslednjo pisavo python. V naslednjem skriptu je podatkovni objekt z imenom dataObject je deklarirano za shranjevanje petih jezikovnih imen s ponovitvijo zanke for. Nato se metoda open () uporabi za dodelitev upravljalnika datotek za ustvarjanje binarne datoteke z imenom jezikov. dump () funkcija se tukaj uporablja za serializacijo podatkov o dataObject in ga shranite v jezikov mapa. Če bo serijalizacija pravilno izvedena, se natisne sporočilo Podatki so serijalizirani.

# Uvozite modul za luženje
uvoz kumarica

# Razglasite objekt za shranjevanje podatkov
dataObject= []

# Petkrat formatirajte zanko for in vzemite imena jezikov
zanv obseg(5):
surov= vnos('Vnesite ime jezika:')

dataObject.priloži(surov)

# Odprite datoteko za pisanje podatkov
file_handler= odprto('jeziki', 'wb')

# Shranite podatke predmeta v datoteko
kumarica.odlagališče(dataObject,file_handler)

# zaprite upravljalnik datotek, da sprostite vire
file_handler.blizu()

# Natisni sporočilo
tiskanje('Podatki so serijalizirani')

Izhod:



Po zagonu skripta bo za vnos vzela pet jezikovnih imen.

Odstranite podatke iz datoteke

odstranjevanje podatkov je nasprotje dekapiranja podatkov. Ustvarite datoteko z imenom pickle2.py z naslednjo pisavo python. Tukaj, odprto() se uporablja za odpiranje binarne datoteke z imenom jezikov , ustvarjeno v prejšnjem primeru. obremenitev () funkcija se uporablja za odstranjevanje podatkov iz datoteke in njihovo shranjevanje v spremenljivko dataObject . Naslednji, za zanka se uporablja za ponovitev podatkov iz dataObject in natisnite v terminalu.

# Uvozite modul za luženje
uvoz kumarica

# Odprite upravljalnik datotek za branje datoteke, od koder se bodo naložili podatki
file_handler= odprto('jeziki', 'rb')

# Naložite podatke iz datoteke po deserializaciji
dataObject= kumarica.obremenitev(file_handler)

# Zaprite upravljalnik datotek
file_handler.blizu()

# Natisni sporočilo
tiskanje('Podatki po deserializaciji')

# Ponovite zanko za tiskanje podatkov po deserializaciji
zaurevdataObject:
tiskanje('Vrednost podatkov:',ure)

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Izberite predmet razreda v datoteko

Kako je mogoče predmet razreda razredčiti, je prikazano v naslednjem primeru. Ustvarite datoteko z imenom pickle3.py z naslednjo pisavo. Tukaj, Zaposleni razred je razglašen za dodelitev treh podatkovnih vrednosti zaposlenega. Nato objekt za obdelavo datotek z imenom fileHandler je ustvarjen za odpiranje datoteke za pisanje. Po inicializaciji predmeta razreda se podatki serializirajo z uporabo dump () funkcijo in shranjena v datoteki z imenom zaposleni Podatki . Če se bo datoteka pravilno ustvarila, se prikaže sporočilo, Podatki so serijalizirani bo natisnil.

# Uvozi modul za kumarice
uvoz kumarica

# Razglasite razred zaposlenih za shranjevanje vrednosti
razredZaposleni:
def __v__(sebe,ime, E-naslov,objava):
sebe.ime =ime
sebe.E-naslov = E-naslov
sebe.objava =objava

#Ustvarite objekt zaposlenega
empObject=Zaposleni('Farheen', '[zaščiteno po e -pošti]', 'Upravitelj')

# Odprite datoteko za shranjevanje podatkov
fileHandler= odprto('EmployeData', 'wb')

# Shranite podatke v datoteko
kumarica.odlagališče(empObject,fileHandler)

# Zaprite datoteko
fileHandler.blizu()

# Natisni sporočilo
tiskanje('Podatki so serijalizirani')

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Odstranite podatke iz predmeta razreda

Za pridobivanje podatkov iz datoteke v objekt razreda bo treba prijaviti razred s potrebnimi lastnostmi in metodami. Ustvarite datoteko z imenom pickle4.py z naslednjo kodo. Zaposleni razred je tukaj definiran za pridobivanje podatkov. fileObject spremenljivka se uporablja za odpiranje datoteke, zaposleni Podatki za branje. Naslednji, obremenitev () funkcija se uporablja za shranjevanje podatkov v objektu razreda po deserializaciji. display () funkcijo Zaposleni class je poklican za tiskanje podatkovnih vrednosti predmeta razreda.

# Uvozi modul za kumarice
uvoz kumarica

# Razglasite razred zaposlenih za branje in tiskanje podatkov iz datoteke
razredZaposleni:
def __v__(sebe,ime, E-naslov,objava):
sebe.ime =ime
sebe.E-naslov = E-naslov
sebe.objava =objava

defzaslon(sebe):
tiskanje('Podatki o zaposlenih:')
tiskanje('Ime:', sebe.ime)
tiskanje('E-naslov :', sebe.E-naslov)
tiskanje('Objava:', sebe.objava)

# Odprite datoteko za branje
fileObject= odprto('EmployeData', 'rb')

# Odstranite podatke
zaposlenega= kumarica.obremenitev(fileObject)

# Zapri datoteko
fileObject.blizu()

#natisnite podatkovni okvir
zaposlenega.zaslon()

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Zaključek

Modul Pickle je uporabna funkcija pythona za serializacijo in deserializacijo podatkov. Po izpolnitvi primerov, prikazanih v tej vadnici, bo prenos podatkov iz ene skripte python v drugo skripto python lažji za vsakogar.