본문 바로가기
카테고리 없음

파이썬 JSON 시리얼라이즈 가능한 클래스에 대한 강의: 이해와 활용 방법

by 뷰티풀스택 2023. 7. 14.
반응형

JSON은 데이터를 효과적으로 저장하고 교환하기 위해 널리 사용되는 형식입니다. Python에서 JSON 형식으로 데이터를 시리얼라이즈(직렬화)하려면, 시리얼라이즈할 수 있는 클래스를 정의해야 합니다. 이러한 클래스를 JSON 시리얼라이즈 가능한 클래스(JSON serializable class)라고 합니다.

 

JSON 시리얼라이즈 가능한 클래스를 정의하려면, 클래스가 JSON 형식으로 표현될 수 있도록 `__dict__` 속성을 제공해야 합니다. 이 속성은 클래스 인스턴스의 모든 속성과 값의 사전을 반환합니다.

 

아래는 JSON 시리얼라이즈 가능한 클래스를 작성하는 예제입니다:

 

```python

import json

 

class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

 

    def to_json(self):

        return json.dumps(self, default=lambda obj: obj.__dict__, indent=4)

 

person = Person("John", 25)

person_json = person.to_json()

print(person_json)

```

 

위의 예제에서는 `Person` 클래스를 정의하고, `to_json` 메서드를 추가했습니다. `to_json` 메서드는 `json.dumps` 함수를 사용하여 인스턴스를 JSON 형식으로 변환합니다. `default` 매개변수는 객체를 직렬화하기 위해 사용될 함수를 지정합니다. 이 함수는 객체의 `__dict__` 속성을 반환하는 람다 함수로 정의되었습니다.

 

결과로는 JSON 형식으로 시리얼라이즈된 `Person` 객체가 출력됩니다:

 

```json

{

    "name": "John",

    "age": 25

}

```

 

위의 예제는 간단한 클래스를 사용하여 JSON 시리얼라이즈 가능한 클래스를 작성하는 방법을 보여줍니다. 객체에 복잡한 속성이나 메서드가 있는 경우 `default` 함수를 신중하게 정의해야 합니다.

 

자세한 내용을 원하시면 아래의 Python 문서 링크를 참조해주세요.

 

Python 문서 링크: https://docs.python.org/3/library/json.html#json.JSONEncoder

반응형

댓글