Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Modul Pickle Python Mensiri dan Menyahseri Objek?

Bagaimanakah Modul Pickle Python Mensiri dan Menyahseri Objek?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 01:05:121033semak imbas

How Does Python's Pickle Module Serialize and Deserialize Objects?

Memahami Pickle untuk Pensirilan Objek: Memelihara Objek Python

Pickle dalam Python menyediakan mekanisme yang mudah untuk menyerikan objek Python ke dalam format binari untuk penyimpanan atau penghantaran. Dengan acar, anda boleh menyimpan struktur data yang kompleks dengan lancar, termasuk kamus, ke dalam fail atau objek seperti bait.

Serialization of a Dictionary

Untuk menulis fail baharu dan buang kamus ke dalamnya menggunakan jeruk, ikut langkah berikut:

import pickle

a = {'hello': 'world'}

with open('filename.pickle', 'wb') as handle:
    pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL)

Kaedah pickle.dump() mensiri kamus 'a' ke dalam fail binari 'filename.pickle'. Argumen protokol menentukan tahap keserasian bersiri.

Deserialisasi

Untuk mendapatkan semula kamus bersiri daripada fail:

with open('filename.pickle', 'rb') as handle:
    b = pickle.load(handle)

Acar. kaedah load() membaca data binari dan membina semula kamus asal 'b'.

Kepelbagaian Melangkaui Kamus

Acar tidak terhad kepada bersiri kamus. Ia boleh mengendalikan pelbagai objek Python, termasuk contoh kelas tersuai dan struktur data yang kompleks. Contohnya:

import datetime
today = datetime.datetime.now()
a = [{'hello': 'world'}, 1, 2.3333, 4, True, "x",
     ("y", [[["z"], "y"], "x"]), {'today', today}]

Penghadan

Walaupun jeruk adalah serba boleh, sesetengah objek tidak boleh dijeruk. Ini termasuk objek yang bergantung pada sumber sistem, seperti pemegang fail terbuka.

Atas ialah kandungan terperinci Bagaimanakah Modul Pickle Python Mensiri dan Menyahseri Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn