背景
- mysql5.7 DBにjson形式でデータを保存する
- backendだけで処理じゃなくて、aws lambdaも処理するので、保存されるjsonの形式を管理したい
対策
- dataclassesでjson形式を固定する
- dataclasses-jsonよりコンバートする
- request -> dict -> dataclass -> json -> DB
- DB -> json -> dataclass -> dict -> response
dataclasses-json紹介
対応
dataclasses
from dataclasses import dataclass
from dataclasses_json import dataclass_json
@dataclass_json
@dataclass
class Metrics:
param1: float
param2: float
@dataclass_json
@dataclass
class Info:
name: str
metrics: Metrics
jsonに変更
metrics = Metrics(1.0, 2.0)
info = Info("test", metrics)
json = info.to_json()
dictに戻る
info = asdict(Info.from_json(json_info))