Kiseli krastavci:
- Uglavnom je dizajniran za upotrebu za Python skriptu.
- Koristi se za spremanje python objekata između procesa.
- Prati sve serializirane objekte i objekt koji je serializiran prije neće se serializirati ponovo.
- Može transparentno spremiti i vratiti instancu klase.
- Nije siguran za upotrebu. Dakle, nije bolje uklanjati podatke iz nepoznatog izvora.
dump () za serializaciju:
funkcija dump () koristi se za pretvaranje podataka objekta u tok znakova prije spremanja u datoteku. Ova funkcija može imati tri argumenta. Prva dva argumenta su obavezna, a zadnji argument nije obavezan. Prvi argument uzima podatkovni objekt koji treba serializirati. Drugi argument uzima objekt rukovatelja datoteke te datoteke u kojem će se pohraniti prikupljeni podaci. Posljednji argument uzima ime protokola.
Sintaksa:
dump (data_object, file_object, [protokol])load () za deserializaciju:
load () funkcija koristi se za pretvaranje podataka toka znakova iz datoteke u Python objekt. Ova funkcija sadrži samo jedan argument, a objekt obrađivača datoteke datoteke prolazi kao vrijednost argumenta odakle će se podaci dohvatiti.
Sintaksa:
učitavanje (objekt_datoteke)Pickle jednostavan objekt za pohranu u datoteku
Stvorite datoteku s imenom kiseli krastavac1.py sa sljedećom skriptom python. U sljedećoj skripti imenovan je podatkovni objekt dataObject deklarirano je da pohranjuje pet jezika ponavljanjem for petlje. Dalje, metoda open () koristi se za dodjeljivanje obrađivača datoteka za stvaranje binarne datoteke s imenom Jezici. istovariti() ovdje se koristi funkcija za serializaciju podataka dataObject i spremite ga u Jezici datoteka. Ako se serializacija izvrši pravilno, ispisat će se poruka "Podaci su serializirani".
# Uvezite modul kiselih krastavacauvozna kiselina
# Proglasite objekt za pohranu podataka
dataObject = []
# Pet puta ponavljajte for petlju i uzmite imena jezika
za n u rasponu (5):
raw = input ('Unesite naziv jezika:')
dataObject.dodati (sirovo)
# Otvorite datoteku za upisivanje podataka
file_handler = otvoren ('jezici', 'wb')
# Izbaci podatke objekta u datoteku
kiseli krastavac.odlagalište (dataObject, file_handler)
# zatvorite obrađivač datoteka da biste oslobodili resurse
file_handler.Zatvoriti()
# Ispis poruke
print ('Podaci su serializirani')
Izlaz:
Nakon pokretanja skripte za unos će trebati pet jezika.
Otkucajte podatke iz datoteke
neotkupljivanje podataka je suprotno od obrađivanja podataka. Stvorite datoteku s imenom kiseli krastavac2.py sa sljedećom skriptom python. Ovdje, otvorena() metoda koristi se za otvaranje binarne datoteke s imenom Jezici, stvoren u prethodnom primjeru. opterećenje() funkcija koristi se za uklanjanje podataka iz datoteke i njihovo spremanje u varijablu dataObject. Sljedeći, za petlja se koristi za ponavljanje podataka iz dataObject i ispis u terminalu.
# Uvezite modul kiselih krastavacauvozna kiselina
# Otvorite rukovatelj datotekama za čitanje datoteke odakle će se podaci učitati
file_handler = otvoren ('jezici', 'rb')
# Učitajte podatke iz datoteke nakon deserializacije
dataObject = kiseli krastavac.učitavanje (file_handler)
# Zatvorite alat za obradu datoteka
file_handler.Zatvoriti()
# Ispis poruke
print ('Podaci nakon deserializacije')
# Ponovite petlju za ispis podataka nakon deserializacije
za val u dataObject:
print ('Vrijednost podataka:', val)
Izlaz:
Sljedeći će se izlaz pojaviti nakon pokretanja skripte.
Pickle objekt klase u datoteku
Kako se objekt klase može ukiseliti prikazano je u sljedećem primjeru. Stvorite datoteku s imenom kiseli krastavac3.py sa sljedećom skriptom. Ovdje, Zaposlenik klasa je proglašena da dodjeljuje tri vrijednosti podataka zaposlenika. Dalje, imenovan objekt obrađivača datoteka fileHandler stvoren je za otvaranje datoteke za pisanje. Nakon inicijalizacije objekta klase, podaci se serializiraju pomoću istovariti() funkcija i pohranjena u datoteci s imenom Podaci o zaposleniku. Ako će se datoteka pravilno stvoriti, poruka, "Podaci su serializirani" ispisat će.
# Uvoz modula kiselih krastavacauvozna kiselina
# Deklarirajte klasu zaposlenika za pohranu vrijednosti
razred Zaposlenik:
def __init __ (sebe, ime, e-mail, post):
sebe.ime = ime
sebe.e-mail = e-pošta
sebe.post = post
# Stvori objekt zaposlenika
empObject = Zaposlenik ('Farheen', '[zaštićen e-poštom]', 'Voditelj')
# Otvori datoteku za pohranu podataka
fileHandler = otvoren ('zaposlenikData', 'wb')
# Spremite podatke u datoteku
kiseli krastavac.odlagalište (empObject, fileHandler)
# Zatvorite datoteku
fileHandler.Zatvoriti()
# Ispis poruke
print ('Podaci su serializirani')
Izlaz:
Sljedeći će se izlaz pojaviti nakon pokretanja skripte.
Otkucajte podatke na predmetu klase
Klasa s potrebnim svojstvima i metodama trebat će prijaviti za dohvaćanje podataka iz datoteke u objekt klase. Stvorite datoteku s imenom kiseli krastavac4.py sa sljedećim kodom. Zaposlenik ovdje je definirana klasa za dohvaćanje podataka. fileObject varijabla koristi se za otvaranje datoteke, Podaci o zaposleniku za čitanje. Sljedeći, opterećenje() funkcija koristi se za pohranu podataka u objekt klase nakon deserializacije. prikaz() funkcija Zaposlenik class se poziva za ispis vrijednosti podataka objekta klase.
# Uvoz modula kiselih krastavacauvozna kiselina
# Proglasite klasu zaposlenika za čitanje i ispis podataka iz datoteke
razred Zaposlenik:
def __init __ (sebe, ime, e-mail, post):
sebe.ime = ime
sebe.e-mail = e-pošta
sebe.post = post
def prikaz (samo):
print ('Podaci o zaposleniku:')
print ('Ime:', samo.Ime)
print ('E-pošta:', samostalno.e-mail)
print ('Post:', samostalno.post)
# Otvorite datoteku za čitanje
fileObject = open ('workerData', 'rb')
# Otkucajte podatke
zaposlenik = kiseli krastavac.učitavanje (fileObject)
# Zatvori datoteku
fileObject.Zatvoriti()
#print dataframe
zaposlenik.prikaz()
Izlaz:
Sljedeći će se izlaz pojaviti nakon pokretanja skripte.
Zaključak
Modul Pickle korisna je značajka pythona za serializaciju i deserializaciju podataka. Nakon dovršavanja primjera prikazanih u ovom vodiču, prijenos podataka s jedne python skripte na drugu python skriptu bit će lakši za svakoga.