Pythonの json.dumps
は変換できない型があります。
↑の記事のように進めたらできるのですが、フレームワークに組まれている変換関数はどうやったら設定できるの?というのが今回の話。
早速コードを確認してみると、なるほど、関数自体をわたしているのね。どうやって引数を渡しましょうか。
悩んでいたけど、defaultで設定した関数をそのまま渡しちゃえばいいじゃんということになり、下記のように書いた。
from decimal import Decimal import json from aiohttp import web def convert_default_proc(obj): if isinstance(obj, Decimal): return float(obj) raise TypeError(repr(obj)) def json_convert_default_proc(data): return json.dumps(data, default=convert_default_proc) def json_response(response_data): return web.json_response( response_data, text=None, reason=None, headers=None, content_type='application/json', dumps=json_convert_default_proc)