Python Pickle Dump

Python Pickle Dump
Python marynta to narzędzie, które może serializować i deserializować strukturę obiektu Pythona. Tiking pozwala zapisać dowolnego obiektu w Pythonie na dysku, a marynowanie może być wykonane za pomocą dowolnego obiektu. Dane zostaną najpierw przetworzone przez Python Pickle, a następnie zostaną przekształcone w przepływ znaków. Obiekt zostanie przekonwertowany w taki sposób, aby strumień znaków będzie miał informacje wymagane do ponownego ponownego uzupełnienia obiektu w innym skrypcie Pythona. Zgodnie z dokumentacją należy zauważyć, że moduł marynaty nie zapewnia bezpieczeństwa przed danymi, które zostały celowo lub przypadkowo wyprodukowane. Dlatego nigdy nie powinieneś oderwać danych, które zostały uzyskane ze źródła, którego nie można zaufać lub nie zostało zatwierdzone.

Następna sekcja nauczy nas, jak przechowywać dane za pomocą formatu marynaty Pythona. Musimy najpierw zaimportować moduł marynaty, aby wykonać to zadanie. Dane z obiektu można następnie zapisać w pliku, wdrażając marynę.Metoda zrzutu ().

Składnia

Marynata.Metoda zrzutowa () akceptuje dwa parametry. Obiekt, który zamierzasz zapisać, jest wysyłany jako pierwszy parametr. Drugie oświadczenie jest podmiotem katalogowym, który otrzymujesz po dostępie do określonego pliku w trybie zapisu (WB).

Przykład 01: Wkładanie wielu linii danych do pliku marynowania za pomocą funkcji zrzutu marynaty

W tym przykładzie spojrzymy na prosty przykład, w którym będziemy używać marynaty.Metoda zrzutu () do pliku. Pierwszym krokiem jest zaimportowanie modułu marynaty w Pythonie do użycia jego metod. W następnym wierszu używany jest monit wejściowy, aby poprosić użytkownika o wprowadzenie liczby cyfr, które użytkownik chce wprowadzić. Jest przechowywany w zmiennej „NUM”. Pusta lista jest również inicjowana jako „dane”. Następnie uruchamiana jest pętla dla liczby czasów danych. W każdej pętli program prosi użytkownika o wprowadzenie danych. Te dane są dołączane do listy „danych”.

Gdy wszystkie dane są dołączane, a pętla kończy się, plik jest otwarty w trybie zapisu (WB) i jest przechowywany w zmiennej „pliku”. W następnym wierszu marynat.Metoda zrzutowa () jest zaimplementowana w danym pliku z „Dane”. Wreszcie plik jest zamknięty.

Na terminalu wyjściowym możemy zobaczyć podpowiedzi wejściowe, które program poprosił użytkownika o wprowadzenie. W tym przykładzie ilość danych wynosiła 2. Jeden był numerem 12, a drugi numer 15. Jeśli otworzymy plik, moglibyśmy zobaczyć, jak dane są zapisane w tym pliku.

Możemy zobaczyć trzy pliki dla następującego programu. Jednym z nich jest plik, w którym kod jest pisany. Głównym plik jest miejsce, w którym kod jest wykonywany. Plik „Info” to plik binarny utworzony przez marynatkę.zrzut (), w którym zrzuciliśmy dane.

Teraz zobaczymy, jak możemy pobrać dane marynaty. Aby odzyskać dane marynaty, musisz użyć marynaty.Metoda ładowania (). Podczas przeglądania pliku w trybie odczytu (RB) można uzyskać dostęp do zawartości katalogu.

Jak marynata.Load () jest również metodą modułu marynaty, musimy najpierw zaimportować ten moduł, aby go użyć. W następnym wierszu plik „Info” jest otwarty w trybie RB. Potem marynata.Metoda load () jest wywoływana na obiekcie pliku, a dane są przechowywane w zmiennej o nazwie „Dane”. Następnie pętla jest przemierzana przez dane, aby wydrukować dane na terminalu wyjściowym, jak pokazano na poniższym zrzucie ekranu:

Przykład 02: Wkładanie wielu list danych do pliku marynowania za pomocą funkcji zrzutu marynaty

Kolejna próbka danych z marynowania i wybuchu pokazano poniżej:

W poprzednim kodzie tworzone są dwa słowniki dla dwóch osób, a mianowicie John i Logan, z ich nazwami i wiekiem. Słownik „List1” zawiera atrybuty obu osób. Następnie plik „Info” jest otwierany w trybie dodatkowym (AB). Marynata.zrzut () jest stosowany do obiektu pliku, który dołącza do niego słownik/dane „list1”. Wreszcie plik jest zamknięty.

W poprzednim kodzie będziemy używać marynaty.load () metoda rozbicia danych, które właśnie marynowaliśmy w pliku „Info”. Plik jest otwarty w trybie RB i marynatce.Metoda load () jest stosowana do obiektu pliku. Zwracane dane są przechowywane w zmiennej o nazwie „List1”. Pętla jest następnie używana do wyświetlania całej zawartości „List1” na terminalach wtórnych, jak pokazano na poniższym obrazku:

Przykład 03: Wkładanie wielu list danych bez pliku marynowania za pomocą funkcji zrzutu pikle, a następnie załadowanie go do konsoli

Teraz spójrzmy na kilka przykładów marynowania i rozbijania danych bez użycia pliku. Tym razem będziemy używać marynaty.zrzuty () i marynat.Metody ładowania (). Jedyna różnica polega na tym, że ta ostatnia metoda tworzy i odczytuje plik zawierający wynik serializacji, podczas gdy metoda zrzutów () i Loads () działają na ciągu, a nie na pliku i zwraca ciąg.

W poprzednim kodzie tworzone są dwa różne słowniki zawierające odpowiednie szczegóły dotyczące Johna i Logana. Następnie tworzono do niego główny słownik „List1” i dodano do niego dwa oddzielne słowniki. W następnym wierszu marynat .Metoda zrzutów () służy do zrzucania danych jako ciągu w nowym obiekcie „A”. W następnym wierszu zrzucone dane są odbierane za pomocą marynaty.LOADS () Metoda i przechowuje dane w nowej zmiennej „Entry”. Karta wyników przedstawia następnie niezakłócone dane, jak widać na obrazie poniżej.

Przykład 04: Wkładanie danych do pliku marynowania za pomocą struktury klasy do przekazywania danych do funkcji zrzutu marynaty

W tym przykładzie będziemy używać klas, aby zrozumieć działanie metod marynat. W poniższym kodzie klasa o nazwie „Datalist” jest tworzona z funkcją load_data (). Liczba całkowita i ciąg są zdefiniowane odpowiednio w obiektach, odpowiednio „a” i „b”. Następnie poza klasą, obiekt Datalist () jest tworzony o nazwie „OBJ”, która zawiera dane. Następnie ten obiekt jest marynowany i przechowywany w nowej zmiennej „danych” za pomocą marynaty.Metoda zrzutów (). Aby odłączyć dane, marynat.Metoda Loads () jest zaimplementowana na „danych”.

Wreszcie zwrócone dane z marynaty.Obciążenia () są wyświetlane na terminalu wyjściowym w postaci słownika, jak pokazano na poniższym zrzucie ekranu:

Przykład 05: Wstawienie długiego ciągu do pliku marynaty za pomocą funkcji kompresji wraz z funkcją zrzutu marynaty

Następny przypadek pokaże, jak kompresować marynowane przedmioty. Możesz użyć modułu BZ2 ze standardowej biblioteki Python do kompresji marynowanej sznurka za pomocą BZIP2.

W tym kodzie dane typu pierwszego drena są inicjowane i przechowywane w zmiennej o nazwie „dane”. W następnym wierszu dane te są marynowane za pomocą marynaty. Zrzuty () do obiektu o nazwie „Zrzucenie”. Następnie ten obiekt jest ściśnięty za pomocą BZ2.Metoda kompresji () i przechowywana w obiekcie „zrzut2”. Tutaj „zrzut” zawiera nieskompresowane dane łańcucha, podczas gdy obiekt „zrzut2” zawiera skompresowane dane. Możemy to udowodnić, znajdując długość obu obiektów za pomocą polecenia len ().

Wniosek

Mam nadzieję, że dzięki temu samouczkowi rozumiesz, jak użyć modułu marynowania Pythona do konwersji hierarchii obiektów na strumień bajtów, który można przechowywać na dysku lub wysłać przez sieć, a także metodę deserializacji Pythona. Jesteś teraz dobrze wyposażony w utrzymywanie obiektów za pomocą pakietu Python Pickle.