PythonのDataclassとJSONを相互に変換する方法について解説します。この記事は、PythonのDataclassとJSONの相互変換に興味がある方を対象にしています。
Dataclassとは
Python 3.7から導入されたDataclassは、データの箱を表現するために非常に便利なクラスです。Dataclassを使用すると、クラスがデータの箱であることが明示でき、クラスの初期化を簡単に実装できます。
DataclassとJSONの相互変換
Pythonの標準ライブラリdataclasses
のasdict
関数とjson
モジュールのdump
のdefault
を使うと、DataclassをJSONに簡単に変換できます。また、match
文とjson.load
のobject_hook
を組み合わせると、JSONのオブジェクトを分かりやすくDataclassに変換できます。
以下に、DataclassとJSONの相互変換の例を示します。
from dataclasses import dataclass, field, asdict
from typing import List
@dataclass
class SampleInfoChild:
childint: int = 0
childstr: str = ''
@dataclass
class SampleInfoParent:
data1: int = 0
data2: str = ''
data3: float = 0.0
listint: List[int] = field(default_factory=list)
childobj: SampleInfoChild = None
sample = SampleInfoParent(2, 'abc', 2.5, [123, 234], SampleInfoChild(2, 'ddd'))
print(asdict(sample)) # Dataclassをdictに変換
このコードは、Dataclass SampleInfoParent
をdictに変換します。
まとめ
PythonのDataclassとJSONの相互変換は、標準ライブラリだけで完結するため、シンプルで便利です。この記事を通じて、PythonのDataclassとJSONの相互変換について理解を深めることができたら幸いです。.