Jak nakládat objekty v Pythonu

How Pickle Objects Python



Jakákoli data lze v Pythonu serializovat a deserializovat pomocí modulu JSON a Pickle. Před uložením jakýchkoli dat do souboru jsou objekty Pythonu serializovány pomocí modulu nakládky. Objekty Pythonu jsou pomocí tohoto modulu převedeny na toky znaků. Když chce uživatel načíst data souboru pomocí jiného skriptu pythonu, data souboru se deserializují modulem nakládky. Funkce modulu pickle a způsob, jakým lze tento modul použít ve skriptu pythonu pro serializaci a deserializaci, jsou popsány v tomto kurzu.

Vlastnosti okurky:

  • Je určen hlavně pro použití pro skript Pythonu.
  • Slouží k ukládání objektů pythonu mezi procesy.
  • Sleduje všechny serializované objekty a objekt, který byl serializován dříve, se serializovat znovu nebude.
  • Může transparentně ukládat a obnovovat instanci třídy.
  • Použití není bezpečné. Není tedy lepší odebrat data z neznámého zdroje.

dump () pro serializaci:

Funkce dump () se používá k převodu dat objektu do proudu znaků před uložením do souboru. Tato funkce může mít tři argumenty. První dva argumenty jsou povinné a poslední argument je nepovinný. První argument přebírá datový objekt, který je třeba serializovat. Druhý argument převezme objekt obsluhy souboru daného souboru, do kterého budou uložena shromážděná data. Poslední argument přebírá název protokolu.







Syntax:



skládka(data_object,file_object, [protokol])

load () pro deserializaci:

Funkce load () se používá k převodu dat toku znaků ze souboru na objekt Pythonu. Tato funkce obsahuje pouze jeden argument a objekt obslužné rutiny souboru předává jako hodnotu argumentu, odkud budou data načtena.



Syntax:





zatížení(file_object)

Nakládejte jednoduchý objekt, který chcete uložit do souboru

Vytvořte soubor s názvem pickle1.py s následujícím skriptem pythonu. V následujícím skriptu datový objekt s názvem dataObject je deklarováno pro uložení pěti jazykových názvů iterací smyčky for. Dále se k přiřazení obslužné rutiny souboru pro vytvoření binárního souboru s názvem použije metoda open () jazyky. skládka () Funkce se zde používá k serializaci dat dataObject a uložte jej do jazyky soubor. Pokud bude serializace provedena správně, vytiskne se zpráva Data jsou serializována.

# Importujte modul nakládky
import lák

# Deklarujte objekt pro ukládání dat
dataObject= []

# Opakujte smyčku for 5krát a vezměte názvy jazyků
pronv rozsah(5):
drsný= vstup('Zadejte název jazyka:')

dataObject.připojit(drsný)

# Otevřete soubor pro zápis dat
file_handler= otevřeno('jazyky', 'wb')

# Uložte data objektu do souboru
lák.skládka(dataObject,file_handler)

# Zavřete obslužný program souboru a uvolněte prostředky
file_handler.zavřít()

# Vytiskněte zprávu
tisk(„Data jsou serializována“)

Výstup:



Po spuštění skriptu bude jako vstup trvat pět názvů jazyků.

Zrušit výběr dat ze souboru

zrušení výběru dat je opakem moření dat. Vytvořte soubor s názvem pickle2.py s následujícím skriptem pythonu. Tady, otevřeno() metoda se používá k otevření binárního souboru s názvem jazyky , vytvořený v předchozím příkladu. zatížení() Funkce slouží k uvolnění dat ze souboru a jejich uložení do proměnné dataObject . Další, pro smyčka se používá k iteraci dat z dataObject a vytiskněte v terminálu.

# Importujte modul nakládky
import lák

# Otevřete obslužný program souboru pro čtení souboru, ze kterého se načtou data
file_handler= otevřeno('jazyky', 'rb')

# Po deserializaci načtěte data ze souboru
dataObject= lák.zatížení(file_handler)

# Zavřete obslužný program souboru
file_handler.zavřít()

# Vytiskněte zprávu
tisk(„Data po deserializaci“)

# Opakováním smyčky vytiskněte data po deserializaci
prohodvdataObject:
tisk('Hodnota dat:',hod)

Výstup:

Po spuštění skriptu se zobrazí následující výstup.

Nakládejte objekt třídy do souboru

Jak lze nakládat objekt třídy, ukazuje následující příklad. Vytvořte soubor s názvem pickle3.py s následujícím skriptem. Tady, Zaměstnanec třída je deklarována k přiřazení tří datových hodnot zaměstnance. Dále pojmenovaný objekt obslužné rutiny souboru fileHandler je vytvořen k otevření souboru pro zápis. Po inicializaci objektu třídy jsou data serializována pomocí skládka () funkce a uloženy v souboru s názvem data zaměstnance . Pokud se soubor vytvoří správně, zobrazí se zpráva, Data jsou serializována vytiskne.

# Importujte nakládací modul
import lák

# Deklarujte třídu zaměstnanců pro uložení hodnoty
třídaZaměstnanec:
def __init__(,název, e-mailem,pošta):
.název =název
.e-mailem = e-mailem
.pošta =pošta

#Vytvořte objekt zaměstnance
empObject=Zaměstnanec('Farheen', '[email protected]', 'Manažer')

# Otevřete soubor pro ukládání dat
fileHandler= otevřeno('employeeData', 'wb')

# Uložte data do souboru
lák.skládka(empObject,fileHandler)

# Zavřete soubor
fileHandler.zavřít()

# Vytiskněte zprávu
tisk(„Data jsou serializována“)

Výstup:

Po spuštění skriptu se zobrazí následující výstup.

Zrušit výběr dat do objektu třídy

Třída s potřebnými vlastnostmi a metodami bude vyžadovat deklaraci pro načítání dat ze souboru do objektu třídy. Vytvořte soubor s názvem pickle4.py s následujícím kódem. Zaměstnanec je zde definována třída pro načtení dat. fileObject proměnná slouží k otevření souboru, data zaměstnance pro čtení. Další, zatížení() funkce slouží k uložení dat do objektu třídy po deserializaci. Zobrazit() funkce Zaměstnanec Třída je volána k tisku datových hodnot objektu třídy.

# Importujte nakládací modul
import lák

# Deklarujte třídu zaměstnanců pro čtení a tisk dat ze souboru
třídaZaměstnanec:
def __init__(,název, e-mailem,pošta):
.název =název
.e-mailem = e-mailem
.pošta =pošta

defZobrazit():
tisk('Informace o zaměstnanci:')
tisk('Název :', .název)
tisk('E-mailem :', .e-mailem)
tisk('Pošta :', .pošta)

# Otevřete soubor pro čtení
fileObject= otevřeno('employeeData', 'rb')

# Zrušte výběr dat
zaměstnanec= lák.zatížení(fileObject)

# Zavřete soubor
fileObject.zavřít()

#vytiskněte datový rámec
zaměstnanec.Zobrazit()

Výstup:

Po spuštění skriptu se zobrazí následující výstup.

Závěr

Pickle modul je užitečná funkce pythonu pro serializaci dat a deserializaci. Po dokončení příkladů ukázaných v tomto tutoriálu bude přenos dat z jednoho python skriptu do jiného python skriptu jednodušší pro kohokoli.