Pydantic을 통해 Object를 JSON으로 Serialization 하거나
JSON을 Object로 Deserialization 할 수 있습니다.
import json
player = {
    "team": "MTU",
    "name": "박지성",
}
json_str = json.dumps(player, ensure_ascii=False).replace(' ', '')
print(json_str)- json 라이브러리를 통해 dict를 json으로 변경
- 공백을 지워줘야 합니다.
from pydantic import BaseModel
class Player(BaseModel):
    team: str
    name: str
player = {
    "team": "MTU",
    "name": "박지성",
}
player_1 = Player(**player)
# deserialize
# dict -> object
print(player_1, type(player_1)) # team='MTU' name='박지성' <class '__main__.Player'>
player_2 = Player.model_validate(player)
print(player_2, type(player_2)) # team='MTU' name='박지성' <class '__main__.Player'>- dict를 object 변경
# pydantic serialize
# object -> json str
print(player_1.model_dump_json()) # {"team":"MTU","name":"박지성"}
print(player_2.model_dump_json()) # {"team":"MTU","name":"박지성"}- object를 json으로 변경
obj = Object()  # 인스턴스 by class, pydantic class
vars(obj)  # dict 변환- object를 dict로 변경
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
class CamelModel(BaseModel):
    model_config = ConfigDict(
        alias_generator=to_camel,
        populate_by_name=True,
        from_attributes=True,
    )
    
class Response(CamelModel):
    my_name: str # myName으로 변환됨.
    ...- snake case를 camel case로 변환한다.
'Python tips' 카테고리의 다른 글
| @property와 __call__ 비교 (0) | 2024.05.08 | 
|---|---|
| map(), filter(), pipe()를 활용하여 데이터 다루기 (0) | 2024.04.08 | 
| python-dotenv, pydantic_settings를 통한 환경 변수 관리 (0) | 2024.03.28 | 
| f-string (0) | 2024.03.28 | 
| 파일 읽기와 쓰기 (0) | 2024.03.25 |