概要
データベースに文字列で配列の情報が格納されている場合にレスポンスには文字列ではなく配列として返却したい場合があります
Flask-Marshmallow で文字列から配列にコンバートして返却する方法を紹介します
環境
- macOS 10.15.5
- MySQL 8.0.19
- Python 3.8.3
- Flask-Migrate 2.5.3
- Flask-SQLAlchemy 2.5.3
- Flask-Marshmallow 0.13.0
やり方
ma.Function
とラムダ式を使って実現できます
引数にレコードのオブジェクトが入ってくるのでそこから指定のカラムの情報を抜き出して処理します
class UserCustomSchema(ma.Schema):
my_id = ma.Integer(attribute="id")
my_name = ma.Function(lambda obj: json.loads(obj.name))
例えばデータベースの name カラムのフィールドには ["hawk","snowlog"]
という文字列情報が入っている場合は json.loads
を使いましょう
単純に文字列で CSV が入っている場合は .split
などを使いましょう
0 件のコメント:
コメントを投稿