外部APIを使って実装するとき、REST APIの戻り値がCamelCaseなjsonであることもあります。例えば、PythonでAWSをboto3
で操作するとき頻発します。
それではPythonのコーディング規約などを考えると少し困ったことになるのですが、pydantic
のalias_generator
という機能を使うと簡単にsnake_caseをキーにした型にキャストできます。
ドキュメントではto_camel
という関数を自作していますが、私はAWSの操作で様々なクラスで利用するために外部ライブラリのinflection
を利用しています。
from pydantic import BaseModel
from inflection import camelize
class Voice(BaseModel):
name: str
language_code: str
class Config:
alias_generator = camelize
voice = Voice(**{'Name': 'Filiz', 'LanguageCode': 'tr-TR'})
print(voice.language_code)
#> tr-TR
print(voice.dict(by_alias=True))
#> {'Name': 'Filiz', 'LanguageCode': 'tr-TR'}