Kuidas Pythonis objekte marineerida

How Pickle Objects Python



Kõik andmed saab Pythonis järjestada ja deserialiseerida, kasutades JSON -i ja Pickle'i moodulit. Enne mis tahes andmete salvestamist faili järjestatakse Pythoni objektid hapukurkmooduli abil. Selle mooduli abil teisendatakse Pythoni objektid märgivoogudeks. Kui kasutaja soovib faili andmeid teise pythoni skripti kasutamiseks hankida, desinfitseeritakse faili andmed hapukurkmooduli abil. Selles juhendis on kirjeldatud hapukurkmooduli funktsioone ja seda, kuidas seda moodulit saab kasutada pythoni skriptides.

Hapukurk omadused:

  • See on mõeldud peamiselt Pythoni skripti jaoks.
  • Seda kasutatakse python -objektide salvestamiseks protsesside vahel.
  • See jälgib kõiki seerialiseeritud objekte ja varem seerialiseeritud objekt ei jagu uuesti.
  • See võib klassi eksemplari läbipaistvalt salvestada ja taastada.
  • Selle kasutamine pole turvaline. Niisiis pole parem tundmatust allikast andmeid lahti võtta.

dump () serialiseerimiseks:

funktsiooni dump () kasutatakse objekti andmete teisendamiseks tähemärgivooluks enne faili salvestamist. See funktsioon võib võtta kolm argumenti. Kaks esimest argumenti on kohustuslikud ja viimane argument on valikuline. Esimene argument võtab andmeobjekti, mis tuleb järjestada. Teine argument võtab selle faili failihalduri objekti, kuhu pakitud andmed salvestatakse. Viimane argument võtab protokolli nime.







Süntaks:



prügimäele(data_object,file_object, [protokoll])

koormus () deserialiseerimiseks:

Funktsiooni load () kasutatakse failivoogude tähevoo andmete teisendamiseks Pythoni objektiks. See funktsioon sisaldab ainult ühte argumenti ja faili failihalduri objekt läheb argumendi väärtuseks, kust andmed alla laaditakse.



Süntaks:





koormus(file_object)

Valige lihtsa objekti failina salvestamiseks

Looge fail nimega hapukurk1.py järgmise pythoni skriptiga. Järgmises skriptis andmeobjekt nimega dataObject on deklareeritud talletama viit keelenime, tsiteerides for -tsüklit. Järgmisena kasutatakse meetodit open () failihalduri määramiseks nimega binaarfaili loomiseks keeli. prügila () funktsiooni kasutatakse siin andmete järjestamiseks dataObject ja hoidke seda kaustas keeli faili. Kui serialiseerimine toimub õigesti, prinditakse teade Andmed on järjestatud.

# Impordi hapukurgi moodul
import hapukurk

# Kuulutage objekt andmete salvestamiseks
dataObject= []

# Korda for -tsüklit 5 korda ja võta keelte nimed
eestnsisse vahemik(5):
toores= sisend('Sisestage keele nimi:')

dataObject.lisama(toores)

# Avage fail andmete kirjutamiseks
failihaldur= lahti('keeled', 'wb')

# Pühkige objekti andmed faili
hapukurk.prügimäele(dataObject,failihaldur)

# sulgege ressursside vabastamiseks failihaldur
failihaldur.Sulge()

# Printige sõnum
printida('Andmed on järjestatud')

Väljund:



Pärast skripti käivitamist võetakse sisendiks viis keele nime.

Eemaldage failist andmed

andmete lahtivõtmine on andmete marineerimise vastand. Looge fail nimega hapukurk2.py järgmise pythoni skriptiga. Siin, avatud () meetodit kasutatakse nimega binaarfaili avamiseks keeli , mis on loodud eelmises näites. koormus () funktsiooni kasutatakse andmete eemaldamiseks failist ja salvestamiseks muutujale dataObject . Edasi, eest tsüklit kasutatakse andmete kordamiseks dataObject ja printige terminalis.

# Impordi hapukurgi moodul
import hapukurk

# Avage failihaldur faili lugemiseks, kust andmed laaditakse
failihaldur= lahti('keeled', 'rb')

# Laadige failist andmed pärast deserialiseerimist
dataObject= hapukurk.koormus(failihaldur)

# Sulgege failihaldur
failihaldur.Sulge()

# Printige sõnum
printida('Andmed pärast deserialiseerimist')

# Pärast deserialiseerimist andmete printimiseks korrake tsüklit
eesttundisissedataObject:
printida('Andmete väärtus:',tundi)

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund.

Markeerige faili klassi objekt

Järgmises näites on näidatud, kuidas klassi objekti saab marineerida. Looge fail nimega hapukurk3.py järgmise skriptiga. Siin, Töötaja klass on deklareeritud määrama töötajale kolm andmeväärtust. Järgmisena failihalduri objekt nimega fileHandler on loodud faili avamiseks kirjutamiseks. Pärast klassi objekti initsialiseerimist järjestatakse andmed, kasutades prügila () funktsiooni ja salvestatakse nimega faili töötajaandmed . Kui fail luuakse õigesti, kuvatakse teade, Andmed on järjestatud hakkab trükkima.

# Impordi hapukurgi moodul
import hapukurk

# Väärtuse salvestamiseks kuulutage välja töötajate klass
klassiTöötaja:
def __selles__(mina,nimi, meilile,postitada):
mina.nimi =nimi
mina.meilile = meilile
mina.postitada =postitada

#Loo töötajaobjekt
empObject=Töötaja('Farheen', '[email protected]', 'Juhataja')

# Avage fail andmete salvestamiseks
fileHandler= lahti('töötajaandmed', 'wb')

# Salvestage andmed faili
hapukurk.prügimäele(empObject,fileHandler)

# Sulgege fail
fileHandler.Sulge()

# Printige sõnum
printida('Andmed on järjestatud')

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund.

Eemaldage andmed klassi objektile

Vajalike omaduste ja meetoditega klass peab deklareerima andmete failist klassiobjektiks toomise. Looge fail nimega hapukurk 4.py järgmise koodiga. Töötaja siin on andmete hankimiseks määratletud klass. fileObject faili avamiseks kasutatakse muutujat, töötajaandmed lugemiseks. Edasi, koormus () funktsiooni kasutatakse andmete salvestamiseks klassiobjektis pärast deserialiseerimist. kuva () funktsioon Töötaja klassi kutsutakse printima klassi objekti andmeväärtusi.

# Impordi hapukurgi moodul
import hapukurk

# Deklareerige töötajate klass failist andmete lugemiseks ja printimiseks
klassiTöötaja:
def __selles__(mina,nimi, meilile,postitada):
mina.nimi =nimi
mina.meilile = meilile
mina.postitada =postitada

defkuvada(mina):
printida('Töötajateave:')
printida('Nimi:', mina.nimi)
printida('E -post:', mina.meilile)
printida('Postitus:', mina.postitada)

# Avage fail lugemiseks
fileObject= lahti('töötajaandmed', 'rb')

# Eemaldage andmed
töötaja= hapukurk.koormus(fileObject)

# Sule fail
fileObject.Sulge()

#printige andmeraam
töötaja.kuvada()

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund.

Järeldus

Hapukurkmoodul on pythoni kasulik funktsioon andmete seeriaks ja deserialiseerimiseks. Pärast selles juhendis näidatud näidete lõpuleviimist on andmete ülekandmine ühest pythoni skriptist teise pythoni skripti jaoks kõigile lihtsam.