> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬 객체의 직렬화 및 사제화 : 1 부

파이썬 객체의 직렬화 및 사제화 : 1 부

Lisa Kudrow
풀어 주다: 2025-03-08 09:39:10
원래의
693명이 탐색했습니다.

Serialization and Deserialization of Python Objects: Part 1 파이썬 객체의 직렬화 및 사막화는 사소한 프로그램의 주요 측면입니다. 무언가를 Python 파일에 저장하면 구성 파일을 읽거나 HTTP 요청에 응답하는 경우 객체 직렬화 및 사태화를 수행합니다.

직렬화와 사제화는 어떤 의미에서 세계에서 가장 지루한 것들입니다. 이 모든 형식과 프로토콜에 대해 누가 걱정합니까? 일부 파이썬 객체를 지속하거나 스트리밍하여 나중에 완전히 검색하려고합니다.

이것은 세상을 개념적 수준에서 볼 수있는 좋은 방법입니다. 그러나 실제 수준에서 선택한 직렬화 체계, 형식 또는 프로토콜은 프로그램이 얼마나 빨리 실행되는지, 보안, 유지 보수 상태의 자유 및 다른 시스템과의 상호 운용성 정도를 결정할 수 있습니다.

다른 상황마다 다른 솔루션이 필요하기 때문에 옵션이 너무 많습니다. "한 가지 크기에 맞는"접근 방식은 작동하지 않습니다. 이 두 부분으로 구성된 튜토리얼에서는 다음과 같습니다

가장 성공적인 직렬화 및 사막화 체계의 장점과 단점에 대한 개요

를 사용하는 방법을 보여줍니다 는 특정 사용 사례 중에서 선택하기위한 지침을 제공합니다

running example

다음 섹션에서는 다른 시리얼 라이저를 사용하여 동일한 Python 객체 그래프를 직렬화하고 실시 할 것입니다. 복제를 피하려면 여기에서 이러한 객체 그래프를 정의해 봅시다.

간단한 객체 다이어그램
    간단한 객체 그래프는 정수, 문자열, 부동 소수점 번호, 부울 및 DateTime 객체의 목록과 덤프,로드 및 덤프 () 메소드가있는 사용자 정의 클래스 인스턴스 (파일과 같은 개체)로 시리얼링 될 수있는 사전입니다.
  • <:> typeerror : 다음과 같이 :``` 트레이스 백 (가장 최근의 호출) :
파일 "Serialize.py", 49 행 )

파일 "/usr/lib/python3.8/json/encoder.py", line 199, incode

chunks = self.iterencode (o, _one_shot = true)

파일 "/usr/lib/python3.8/json/encoder.py", iterencode

유형을 높이십시오 (f'object of type {o. 클래스 .
<code>
哇!这看起来一点也不好。发生了什么?错误消息是 JSONEncoder 类使用的 default() 方法在 JSON 编码器遇到无法序列化的对象时调用的。

自定义编码器的任务是将其转换为 JSON 编码器能够编码的 Python 对象图。在本例中,我们有两个需要特殊编码的对象:A 类。以下编码器可以完成这项工作。每个特殊对象都转换为“\_\_A\_\_”和 pprint 函数的 load() 和 object_hook 参数,允许您提供自定义函数来将字典转换为对象。
</code>
로그인 후 복사
<_> def decode_object (o) :


if ''에서 o : a. o :
'in o : 'return datetime.strptime (o [ ' datetime '], '%y-%m-%dt%h :%m :%s') return o
deserialized = json.loads (Serialized, object_hook = decode_object) print (deserialized) # prints : { 'a': & lt;
.a at = "객체 =" "" "& gt;, ': datetime.dateTime. 0)}}
deserialized == complex 메인

위 내용은 파이썬 객체의 직렬화 및 사제화 : 1 부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿