Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

dataclasses-jsonでdataclassesにJSONからデータを渡す

大分前に扱ったデータの塊をヨロシク定義できるdataclasses
shuzo-kino.hateblo.jp
これにjsonからデータを突っ込んだり、逆にjsonにしたりするライブラリがありました。

実際のところ

dataclassesに加えて、dataclasses_jsonも追加

from dataclasses import dataclass
from dataclasses_json import dataclass_json

@dataclass_json
@dataclass
class Point:
    x: int
    y: int = 10

dataclassesをjsonにする

pt = Point(x=10,y=19)
pt.to_json()

pt
#> '{"x": 10, "y": 19}'

json文字列をdataclassesにする

jsonstr = '{"x":99, "y":8}'
pt_json = Point.from_json(jsonstr)

pt_json
#>> Point(x=99, y=8)