Python

Kā marinēt objektus Python

Kā marinēt objektus Python
Jebkurus datus var sērijveidot un deserializēt Python, izmantojot JSON un Pickle moduli. Pirms jebkādu datu glabāšanas failā Python objekti tiek sērijveidoti, izmantojot marinēšanas moduli. Izmantojot šo moduli, Python objekti tiek pārveidoti par rakstzīmju straumēm. Kad lietotājs vēlas iegūt faila datus, lai izmantotu citu pitona skriptu, faila dati tiek deserializēti ar marinēšanas moduli. Šajā apmācībā ir aprakstītas marinādes moduļa iespējas un tas, kā šo moduli var izmantot python skriptā serializācijai un deserializācijai.

Marinādes funkcijas:

dump () serializēšanai:

funkcija dump () tiek izmantota objekta datu pārveidošanai rakstzīmju straumē pirms saglabāšanas failā. Šai funkcijai var būt trīs argumenti. Pirmie divi argumenti ir obligāti, un pēdējais arguments nav obligāts. Pirmajā argumentā tiek izmantots datu objekts, kas jāserializē. Otrais arguments ņem faila apstrādes objektu šajā failā, kurā tiks glabāti pckled dati. Pēdējais arguments ņem protokola nosaukumu.

Sintakse:

dump (datu_objekts, faila objekts, [protokols])

slodze () deserializācijai:

funkcija load () tiek izmantota, lai no faila pārveidotu rakstzīmju plūsmas datus par Python objektu. Šajā funkcijā ir tikai viens arguments, un faila apstrādes objekts kā argumenta vērtība pāriet no kurienes tiks iegūti dati.

Sintakse:

ielādēt (file_object)

Marinējiet vienkāršu objektu, ko uzglabāt failā

Izveidojiet failu ar nosaukumu marinēti gurķi1.py ar šādu pitona skriptu.  Šajā skriptā datu objekts nosaukts dataObject tiek deklarēts, ka tas glabā piecus valodu nosaukumus, atkārtojot for ciklu. Pēc tam metodi Open () izmanto, lai piešķirtu failu apstrādātāju binārā faila ar nosaukumu izveidošanai valodās. izgāzt () Funkcija tiek izmantota šeit, lai sērijveidotu dataObject un uzglabājiet to valodās failu.  Ja sērijveidošana tiks veikta pareizi, tiks izdrukāts ziņojums “Dati ir sērijveidoti”.

# Importējiet marinētu gurķu moduli
importēt marinētu gurķi
# Deklarēt objektu datu glabāšanai
dataObject = []
# Atkārtojiet for ciklu 5 reizes un ņemiet valodu nosaukumus
n diapazonā (5):
raw = input ('Ievadiet valodas nosaukumu:')
dataObject.pievienot (neapstrādāts)
# Atveriet failu datu ierakstīšanai
file_handler = open ('valodas', 'wb')
# Izmetiet objekta datus failā
marinēti gurķi.dump (dataObject, file_handler)
# aizveriet failu apstrādātāju, lai atbrīvotu resursus
file_handler.aizvērt ()
# Drukāt ziņojumu
drukāt ('Dati tiek sērijveidoti')

Izeja:

Pēc skripta palaišanas tā ievadīs piecus valodu nosaukumus.

Noņemiet datus no faila

datu atlasīšana ir pretēja kodināšanas datiem. Izveidojiet failu ar nosaukumu marinēti gurķi2.py ar šādu pitona skriptu. Šeit, atvērts () metodi izmanto, lai atvērtu nosaukto bināro failu valodās, izveidots iepriekšējā piemērā. slodze () Funkcija tiek izmantota, lai atlasītu datus no faila un saglabātu tos mainīgajā dataObject. Nākamais, priekš cilpa tiek izmantota, lai atkārtotu datus no dataObject un drukājiet terminālā.

# Importējiet marinētu gurķu moduli
importēt marinētu gurķi
# Atveriet failu apstrādātāju faila lasīšanai no vietas, kur dati tiks ielādēti
file_handler = open ('valodas', 'rb')
# Pēc deserializācijas ielādējiet datus no faila
dataObject = marinēti gurķi.ielādēt (file_handler)
# Aizveriet failu apstrādātāju
file_handler.aizvērt ()
# Drukāt ziņojumu
drukāt (“Dati pēc deserializācijas”)
# Atkārtojiet cilpu, lai pēc deserializācijas izdrukātu datus
par val in dataObject:
print ('Datu vērtība:', val)

Izeja:

Pēc skripta palaišanas parādīsies šāda izeja.

Marinējiet klases objektu failā

Kā klases objektu var marinēt, parādīts nākamajā piemērā. Izveidojiet failu ar nosaukumu marinēti gurķi3.py ar šādu skriptu. Šeit, Darbinieks klase ir deklarēta, lai piešķirtu trīs darbinieka datu vērtības. Pēc tam failu apstrādes objekts ar nosaukumu fileHandler ir izveidots, lai atvērtu failu rakstīšanai. Pēc klases objekta inicializācijas dati tiek sērijveidoti, izmantojot izgāzt () funkcija un saglabāta nosauktajā failā darbinieksDati. Ja fails tiks izveidots pareizi, tad ziņojums, “Dati tiek sērijveidoti” izdrukās.

# Importēt marinētu gurķu moduli
importēt marinētu gurķi
# Paziņojiet darbinieku klasei, lai saglabātu vērtību
klases darbinieks:
def __init __ (pats, vārds, e-pasts, pasts):
pats.nosaukums = nosaukums
pats.e-pasts = e-pasts
pats.post = post
 
# Izveidot darbinieku objektu
empObject = Darbinieks ('Farheen', '[e-pasts aizsargāts]', 'Pārvaldnieks')
# Atveriet failu veikala datiem
fileHandler = open ('darbinieka dati', 'wb')
# Saglabājiet datus failā
marinēti gurķi.dump (empObject, fileHandler)
# Aizveriet failu
fileHandler.aizvērt ()
# Drukāt ziņojumu
drukāt ('Dati tiek sērijveidoti')

Izeja:

Pēc skripta palaišanas parādīsies šāda izeja.

Noņemt datus no klases objekta

Klasei ar nepieciešamajām īpašībām un metodēm būs jādeklarē, lai datus no faila izgūtu klases objektā. Izveidojiet failu ar nosaukumu marinēti gurķi4.py ar šādu kodu. Darbinieks klase ir definēta šeit, lai izgūtu datus. fileObject mainīgais tiek izmantots faila atvēršanai, darbinieksDati lasīšanai. Nākamais, slodze () funkcija tiek izmantota, lai pēc deserializācijas saglabātu datus klases objektā. displejs () funkcija Darbinieks klase tiek izsaukta, lai izdrukātu klases objekta datu vērtības.

# Importēt marinētu gurķu moduli
importēt marinētu gurķi
# Deklarēt darbinieku klasi datu lasīšanai un drukāšanai
klases darbinieks:
def __init __ (pats, vārds, e-pasts, pasts):
pats.nosaukums = nosaukums
pats.e-pasts = e-pasts
pats.post = post
def displejs (pats):
drukāt ('Informācija par darbiniekiem:')
drukāt ('Nosaukums:', self.nosaukums)
drukāt ('E-pasts:', pats.e-pasts)
drukāt ('Post:', self.pastu)
 
# Atveriet failu lasīšanai
fileObject = atvērts ('workerData', 'rb')
# Noņemiet datus
darbinieks = marināde.ielādēt (fileObject)
# Aizvērt failu
fileObject.aizvērt ()
#print datu ietvaru
darbinieks.displejs ()

Izeja:

Pēc skripta palaišanas parādīsies šāda izeja.

Secinājums

Marinādes modulis ir noderīga pitona funkcija datu serializācijai un deserializācijai. Pēc šajā apmācībā parādīto piemēru pabeigšanas ikvienam būs vieglāk pārsūtīt datus no viena pitona skripta uz citu pitona skriptu.

Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...
AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...