>백엔드 개발 >파이썬 튜토리얼 >Python의 Pickle 모듈은 객체를 어떻게 직렬화 및 역직렬화합니까?

Python의 Pickle 모듈은 객체를 어떻게 직렬화 및 역직렬화합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-29 01:05:12967검색

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

객체 직렬화를 위한 Pickle 이해: Python 객체 보존

Python의 Pickle은 Python 객체를 저장을 위해 바이너리 형식으로 직렬화하는 편리한 메커니즘을 제공합니다. 또는 전송. 피클을 사용하면 사전을 포함한 복잡한 데이터 구조를 파일이나 바이트형 객체로 원활하게 저장할 수 있습니다.

사전 직렬화

새 파일을 작성하고 pickle을 사용하여 사전을 여기에 덤프하려면 다음 단계를 따르세요.

import pickle

a = {'hello': 'world'}

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

pickle.dump() 메서드 사전 'a'를 바이너리 파일 'filename.pickle'로 직렬화합니다. 프로토콜 인수는 직렬화 호환성 수준을 지정합니다.

역직렬화

파일에서 직렬화된 사전을 검색하려면:

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

피클. load() 메서드는 이진 데이터를 읽고 원래 사전을 재구성합니다. 'b'.

사전을 넘어서는 다양성

Pickle은 사전 직렬화에만 국한되지 않습니다. 사용자 정의 클래스 및 복잡한 데이터 구조의 인스턴스를 포함하여 다양한 Python 개체를 처리할 수 있습니다. 예를 들면 다음과 같습니다.

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

제한 사항

피클은 다목적이지만 일부 개체는 피클할 수 없습니다. 여기에는 열린 파일 핸들과 같이 시스템 리소스에 의존하는 개체가 포함됩니다.

위 내용은 Python의 Pickle 모듈은 객체를 어떻게 직렬화 및 역직렬화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.