본문 바로가기
Python/FLASK

직렬화/ 역직렬화 처리하기

by sophia02 2022. 9. 12.

직렬화

메모리를 디스크에 저장하거나 객체를 네트워크 통신이 가능한 형태로 변환하는 것을 말합니다

 

역직렬화

디스크에 저장된 데이터를 읽거나 네트워크 통신으로 받은 데이터를 원래 객체의 형태로 변환하는 것을 말합니다

 

marshmallow schema 클래스

dump_only() : 역직렬화 중 건너뛸 필드를 말합니다 (읽기 전용 필드)

load_only() : 직렬화 중 건너뛸 필드를 말합니다 (쓰기 전용 필드)

many : 컬렉션으로 직렬화할지에 대한 여부를 말합니다

 

 

나만의 직렬화 역직렬화 만들기

pip install -U marshmallow

를 입력해줍니다

 

Maple이라는 클래스에 기입하고 싶은 정보를 넣고, 2개의 캐릭터를 생성해줍니다

 

직렬화

딕셔너리
json

역직렬화

from marshmallow import Schema, fields
from serialization import Maple

JSON_Adel_data = {"name": "아델",
                   "gender": "female",
                   "address": "리스토니아",
                   "job": "기사"}


class MapleSchema(Schema):
    name = fields.String()
    gender = fields.String()
    address = fields.String()
    job = fields.String()


maple_data = MapleSchema()

data = maple_data.load(JSON_Adel_data)
Maple_object = Maple(**data)

print(Maple_object.__dict__)