>  기사  >  백엔드 개발  >  Python에서 피클과 JSON을 사용하여 객체를 직렬화 및 역직렬화하는 방법

Python에서 피클과 JSON을 사용하여 객체를 직렬화 및 역직렬화하는 방법

WBOY
WBOY원래의
2023-10-16 09:22:501732검색

Python에서 피클과 JSON을 사용하여 객체를 직렬화 및 역직렬화하는 방법

Python에서 피클과 JSON을 사용하여 객체 직렬화 및 역직렬화를 수행하는 방법

Python은 유용한 라이브러리와 모듈이 내장되어 있어 개발자가 다양한 작업을 빠르게 수행할 수 있도록 하는 간단하면서도 강력한 프로그래밍 언어입니다. . 그중 피클과 JSON은 객체 직렬화 및 역직렬화에 일반적으로 사용되는 두 가지 모듈입니다. 이 문서에서는 이 두 모듈을 사용하여 개체를 직렬화 및 역직렬화하는 방법을 소개하고 자세한 코드 예제를 제공합니다.

  1. 객체 직렬화 및 역직렬화에 피클 사용

pickle은 객체를 저장 또는 전송을 위해 바이너리 데이터로 변환할 수 있고, 바이너리 데이터를 원본 객체로 복원할 수도 있는 Python의 모듈입니다.

먼저 피클 모듈을 가져와야 합니다.

import pickle

다음으로 피클 모듈의 dump 함수를 사용하여 객체를 이진 데이터로 직렬화할 수 있습니다.

data = {'name':'Tom', 'age': 25, 'city': 'New York'}
serialized_data = pickle.dumps(data)

ump 함수를 사용한 후 serialized_data 변수는 직렬화된 이진 데이터. 반대로, 로드 함수를 사용하여 바이너리 데이터를 원본 개체로 복원할 수 있습니다.

deserialized_data = pickle.loads(serialized_data)
print(deserialized_data)

이때 deserialized_data 변수는 복원된 원본 개체를 저장합니다.

다음은 사용자 정의 Person 객체를 직렬화 및 역직렬화하는 방법을 보여주는 완전한 예입니다.

import pickle

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 序列化对象
person = Person('Tom', 25)
serialized_person = pickle.dumps(person)

# 反序列化对象
deserialized_person = pickle.loads(serialized_person)
print(deserialized_person.name)
print(deserialized_person.age)
  1. 객체 직렬화 및 역직렬화에 JSON 사용

JSON은 읽고 쓰기 쉬운 경량 레벨 데이터 교환 형식입니다. Python은 JSON 개체를 쉽게 직렬화 및 역직렬화할 수 있는 json 모듈을 제공합니다.

먼저 json 모듈을 가져와야 합니다.

import json

다음으로 json 모듈의 dump 함수를 사용하여 객체를 JSON 문자열로 직렬화할 수 있습니다.

data = {'name':'Tom', 'age': 25, 'city': 'New York'}
serialized_data = json.dumps(data)

ump 함수를 사용한 후 serialized_data 변수가 저장됩니다. 직렬화된 JSON 문자열. 반대로, load 함수를 사용하면 JSON 문자열을 원본 객체로 복원할 수 있습니다.

deserialized_data = json.loads(serialized_data)
print(deserialized_data)

이때 deserialized_data 변수는 복원된 원본 객체를 저장합니다.

마찬가지로 다음은 사용자 정의 Person 개체를 직렬화 및 역직렬화하는 방법을 보여주는 전체 예입니다.

import json

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 序列化对象
person = Person('Tom', 25)
serialized_person = json.dumps(person.__dict__)

# 反序列化对象
deserialized_person = json.loads(serialized_person)
print(deserialized_person['name'])
print(deserialized_person['age'])

요약:

pickle 및 JSON 모듈을 사용하면 개체의 직렬화 및 역직렬화를 쉽게 수행할 수 있습니다. 피클을 사용하여 객체를 파일 저장 및 네트워크 전송에 사용할 수 있는 바이너리 데이터로 변환하고 범용 데이터 교환 형식인 JSON을 사용하면 다른 언어와 쉽게 데이터를 교환할 수 있습니다. 특정 사용 시나리오 및 요구 사항에 따라 객체 직렬화 및 역직렬화 작업을 수행하는 데 적합한 모듈을 선택할 수 있습니다.

위 내용은 Python에서 피클과 JSON을 사용하여 객체를 직렬화 및 역직렬화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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