Pythonのdataclass
は、クラスの定義を簡単にし、コードの可読性を向上させるための便利な機能です。特に、データの箱を示すクラスを用意するときにとても重宝します。
しかし、dataclass
と辞書型(dict
)との間でデータを変換する必要がある場合もあります。例えば、APIのレスポンスをdataclass
に変換したり、dataclass
をJSONに変換してAPIのリクエストとして送信したりする場合などです。
Dataclassから辞書型への変換
dataclass
から辞書型への変換は、Pythonの標準ライブラリdataclasses
のasdict
関数を使用します。
from dataclasses import dataclass, asdict
@dataclass
class Sample:
name: str
age: int
sample = Sample("John", 25)
sample_dict = asdict(sample)
print(sample_dict) # {'name': 'John', 'age': 25}
このように、asdict
関数を使用するとdataclass
のインスタンスを辞書型に簡単に変換することができます。
辞書型からDataclassへの変換
辞書型からdataclass
への変換は、辞書を展開(**dict
)してdataclass
のインスタンスを作成します。
from dataclasses import dataclass
@dataclass
class Sample:
name: str
age: int
sample_dict = {"name": "John", "age": 25}
sample = Sample(**sample_dict)
print(sample) # Sample(name='John', age=25)
このように、辞書を展開することでdataclass
のインスタンスを簡単に作成することができます。
以上、Pythonのdataclass
と辞書型の相互変換について説明しました。これらの知識を活用して、Pythonプログラミングをより効率的に行いましょう。