Pydantic のエイリアスについて¶
Pydantic とは¶
Pydanticは Python の型アノテーションを用いてデータのバリデーションをしてくれるライブラリ。FastAPI 等でも使われている。
Warning
この記事は pydantic 1 系の時に書いたもの。2 系の内容に更新できていないため、2 系の情報は公式ドキュメントを参照されたい。
Pydantic のエイリアスについて¶
データソースのフィールド名がコードスタイルと合わない場合にエイリアス名を使ってデータ化できる。公式のサンプルコードのように snake case のプロパティに upper camel case のデータフィールドを紐づけることができる。
このコードでVoice(name='Filiz', language_code='tr-TR')
を実行すると validation エラーになる。エイリアス前の名前とエイリアス名、両方を使ってデータ化できるようにするにはallow_population_by_field_name=True
を Config クラスに記す必要がある。
エイリアスの指定方法がいくつかあるが、次の優先順位にしたがって設定される。
- モデル上で直接、Field(..., alias=
)を介して設定される - Config.fields で定義され、モデル上で直接設定される
- 親モデルの Field(..., alias=
)を通して設定される - 親モデルの Config.fields で定義される
- モデルや親に関係なく、alias_generator によって生成される