Jak marynować obiekty w Pythonie

Jak marynować obiekty w Pythonie
Wszelkie dane mogą być serializowane i deserializowane w Pythonie za pomocą modułu JSON i Pickle. Przed przechowywaniem dowolnych danych w pliku obiekty Python są serializowane za pomocą modułu marynowania. Obiekty Pythona są konwertowane na strumienie znaków za pomocą tego modułu. Gdy użytkownik chce pobrać dane pliku do używania innego skryptu Pythona, dane pliku są deserializowane przez moduł marynaty. Cechy modułu marynaty i sposób, w jaki ten moduł można wykorzystać w skrypcie Python do serializacji i deserializacji, opisano w tym samouczku.

Funkcje marynaty:

  • Jest zaprojektowany głównie do użycia do skryptu Pythona.
  • Służy do oszczędzania obiektów Pythona między procesami.
  • Śledzi wszystkie serializowane obiekty, a obiekt, który jest wcześniej serializowany.
  • Może zapisać i przywrócić instancję klasową przejrzysty.
  • Nie jest bezpieczne użycie. Więc nie jest lepiej odłączyć dane od nieznanego źródła.

zrzut () do serializacji:

Funkcja zrzutowa () służy do konwersji danych obiektu na strumień znaków przed zapisaniem w pliku. Ta funkcja może wziąć trzy argumenty. Pierwsze dwa argumenty są obowiązkowe, a ostatni argument jest opcjonalny. Pierwszy argument przyjmuje obiekt danych, który wymaga serializacji. Drugi argument przyjmuje obiekt obsługi pliku tego pliku, w którym dane będą przechowywane. Ostatni argument przyjmuje nazwę protokołu.

Składnia:

zrzut (data_object, file_object, [protokół])

ładowanie () do deserializacji:

Funkcja load () służy do konwersji danych strumienia znaków z pliku na obiekt Python. Ta funkcja zawiera tylko jeden argument, a obiekt obsługi pliku pliku przechodzi jako wartość argumentu, z której dane zostaną pobrane.

Składnia:

załaduj (File_Object)

Marynuj prosty obiekt do przechowywania w pliku

Utwórz plik o nazwie Pickle1.py z następującym skryptem Python. W poniższym skrypcie nazywany obiekt danych DataObject jest zadeklarowany do przechowywania pięciu nazw języków poprzez iterowanie pętli dla. Następnie metoda Open () służy do przypisania obsługi plików do utworzenia plik binarnego o nazwie Języki. wysypisko() funkcja jest tutaj używana do serializacji danych DataObject i przechowuj go w Języki plik. Jeśli serializacja zostanie wykonana poprawnie, wówczas komunikat „Dane są serializowane”.

# Zaimportuj moduł marynaty
Importuj marynatkę
# Deklaruj obiekt do przechowywania danych
dataObject = []
# Iteruj pętlę dla 5 razy i przyjmij nazwy języków
dla n w zakresie (5):
raw = input („wprowadź nazwę języka:”)
DataObject.Dodatek (surowy)
# Otwórz plik do pisania danych
file_handler = Open („Languages”, „WB”)
# Zrzuć dane obiektu do pliku
marynata.zrzut (dataObject, file_handler)
# Zamknij obsługę plików, aby zwolnić zasoby
FILE_HANDLER.zamknąć()
# Wydrukuj wiadomość
print („Dane są serializowane”)

Wyjście:

Po uruchomieniu skryptu zajmie pięć nazw języków jako wejścia.

Odłącz dane z pliku

Odbicie danych jest przeciwieństwem danych. Utwórz plik o nazwie Pickle2.py z następującym skryptem Python. Tutaj, otwarty() Metoda jest używana do otwarcia plik binarnego wymienionego Języki, utworzony w poprzednim przykładzie. obciążenie() Funkcja służy do odłączenia danych z pliku i przechowywania w zmiennej DataObject. Następny, Do Pętla jest używana iteruj dane z DataObject i wydrukuj w terminalu.

# Zaimportuj moduł marynaty
Importuj marynatkę
# Otwórz obsługę plików do odczytu pliku, z którego ładują dane
file_handler = Open („Języki”, „rb”)
# Załaduj dane z pliku po deserializacji
dataObject = marynata.załaduj (file_handler)
# Zamknij obsługę plików
FILE_HANDLER.zamknąć()
# Wydrukuj wiadomość
Drukuj („Dane po deserializacji”)
# Iteruj pętlę, aby wydrukować dane po deserializacji
dla Val w DataObject:
drukuj („wartość danych:”, val)

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Marynuj obiekt klasowy do pliku

Jak można maryzować obiekt klasy, jest pokazany w poniższym przykładzie. Utwórz plik o nazwie Pickle3.py z następującym skryptem. Tutaj, Pracownik klasa jest zadeklarowana w celu przypisania trzech wartości danych pracownika. Następnie wymieniony obiekt obsługi plików FileHandler jest tworzony w celu otwarcia pliku do pisania. Po zainicjowaniu obiektu klasowego dane są serializowane za pomocą za pomocą wysypisko() funkcja i przechowywana w pliku wymienionym pracownik. Jeśli plik utworzy poprawnie, to wiadomość, „Dane są serializowane” wydrukuje.

# Importuj moduł marynaty
Importuj marynatkę
# Zadeklaruj klasę pracowników do przechowywania wartości
Pracownik klasy:
def __init __ (ja, imię, e -mail, post):
samego siebie.Nazwa = nazwa
samego siebie.e -mail = e -mail
samego siebie.Post = Post
#Create Obiekt pracownika
empobject = pracownik („farheen”, „[email protected] ', „menedżer”)
# Otwórz plik danych sklepowych
FileHandler = Open („pracownik”, „wb”)
# Zapisz dane w pliku
marynata.zrzut (EmpObject, FileHandler)
# Zamknij plik
FileHandler.zamknąć()
# Wydrukuj wiadomość
print („Dane są serializowane”)

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Odłącz dane do obiektu klasowego

Klasa z niezbędnymi właściwościami i metodami będzie wymagała zadeklarowania w celu uzyskania danych z pliku do obiektu klasowego. Utwórz plik o nazwie Pickle4.py z następującym kodem. Pracownik Klasa jest tutaj zdefiniowana w celu odzyskania danych. FileObject Zmienna służy do otwarcia pliku, pracownik do czytania. Następny, obciążenie() Funkcja służy do przechowywania danych w obiekcie klasy po deserializacji. wyświetlacz() funkcja Pracownik Klasa jest wywoływana w celu wydrukowania wartości danych obiektu klasowego.

# Importuj moduł marynaty
Importuj marynatkę
# Zadeklaruj klasę pracowników do odczytu i drukowania danych z pliku
Pracownik klasy:
def __init __ (ja, imię, e -mail, post):
samego siebie.Nazwa = nazwa
samego siebie.e -mail = e -mail
samego siebie.Post = Post
Wyświetlacz def (self):
Drukuj („Informacje o pracownikach:”)
Drukuj („Nazwa:”, jaźń.nazwa)
Drukuj („e -mail:”, jaźń.e-mail)
Drukuj („Post:”, jaźń.post)
# Otwórz plik do odczytu
FileObject = Open („pracownik”, „rb”)
# Odłącz dane
Pracownik = marynata.załaduj (FileObject)
# Zamknij plik
FileObject.zamknąć()
#Print the DataFrame
pracownik.wyświetlacz()

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Wniosek

Moduł marynaty jest przydatną cechą Python do serializacji danych i deserializacji. Po zakończeniu przykładów pokazanych w tym samouczku, przesyłanie danych z jednego skryptu Pythona do innego skryptu Pythona będzie łatwiejsze dla każdego.