python ; json serialize時の変数の命名・改変

変数の命名・改変をしたい

モチベーション

データソースのフィールド名がコードスタイルと一致しない場合(キャメルケースのフィールドなど)、classに変換方法を記述し自動的にエイリアスjson でdumpするときに生成したいことがある。JSON形式などで生のキー-値のようなデータを受け取る場合、キーはあらゆる種類の命名規則に従うかもしれません。例えば、{"user-name". "Peter"}を受け取ることができます。(ケバブの場合), {"userName". "Peter"} (キャメルの場合)、または {"user_name". "Peter"} (スネークケース)を使用します。しかし、Pythonではスネークケースが一般的で、他の規約を使うのはまれだ。

こうした需要をサポートするのがmarshmallow と Pydantic だ。marshmallow と Pydantic の両方が、実際にフィールドの名前を動的に変更するサポートを提供する。marshmallowはこちら、Pydanticはこちらを参照。

Pydanticの場合、 シリアライズのためにはo.dict()の代わりにo.dict(by_alias=True)を呼び出す必要がある点に注意する。