[python] Marshmallow 모듈을 사용하여 JSON 데이터를 직렬화하는 방법

Marshmallow는 Python에서 JSON 데이터를 직렬화하고 역직렬화하는 작업을 도와주는 모듈입니다. 이 모듈을 사용하면 복잡한 JSON 데이터를 쉽게 처리할 수 있습니다. 이번 포스트에서는 Marshmallow를 사용하여 JSON 데이터를 직렬화하는 방법에 대해 알아보겠습니다.

Marshmallow란?

Marshmallow는 Python 객체와 JSON 데이터 간의 직렬화와 역직렬화를 처리하는 라이브러리입니다. 이 모듈은 다양한 기능을 제공하여 복잡한 데이터 모델을 쉽게 다룰 수 있도록 도와줍니다. Marshmallow는 다른 직렬화 라이브러리인 json과 달리 유효성 검사(validation)와 같은 고급 기능을 지원합니다.

Marshmallow 설치

Marshmallow를 설치하려면 다음 명령어를 사용합니다:

pip install marshmallow

Marshmallow를 사용하여 JSON 데이터 직렬화하기

Marshmallow를 사용하여 JSON 데이터를 직렬화하기 위해 다음 세 가지 단계를 따릅니다.

  1. 스키마(Schema) 정의하기: 직렬화하려는 데이터의 구조를 정의하는 스키마를 만듭니다.
  2. 스키마 인스턴스화하기: 스키마를 사용하여 JSON 데이터를 직렬화하는 인스턴스를 생성합니다.
  3. 데이터 직렬화하기: 스키마 인스턴스를 사용하여 Python 객체를 JSON 데이터로 직렬화합니다.

다음은 간단한 예제를 통해 Marshmallow를 사용하여 JSON 데이터를 직렬화하는 방법을 보여줍니다.

from marshmallow import Schema, fields

# 스키마 정의
class PersonSchema(Schema):
    name = fields.Str()
    age = fields.Int()

# 스키마 인스턴스화
person_schema = PersonSchema()

# 데이터 직렬화
person_data = {
    'name': 'John Doe',
    'age': 25
}
json_data = person_schema.dumps(person_data)

print(json_data)

위의 예제에서는 PersonSchema라는 스키마를 정의하고, nameage라는 필드를 가지는 스키마를 작성했습니다. 그런 다음 PersonSchema 인스턴스를 만들고, dumps() 메소드를 사용하여 Python 객체를 JSON 데이터로 직렬화했습니다.

결과는 다음과 같습니다:

'{"name": "John Doe", "age": 25}'

이제 Marshmallow를 사용하여 JSON 데이터를 직렬화하는 방법에 대해 이해했습니다. Marshmallow는 유효성 검사, 중첩된 스키마, 필드 상속 등 많은 기능을 제공합니다. 자세한 내용은 Marshmallow의 공식 문서를 참조하세요.

참고 자료