python-3.6 を使用してaiohttp
にHTTPサーバーがあります。 JSONを介してweb.Response()
を返すにはどうすればよいですか(dict
から)?
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.Response(res) # <-- as JSON
_web.json_response
_ を使用できます。
_async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.json_response(res)
_
さらに、_json_response
_には、次のような追加のパラメーターがあります。
_json_response(data, text=None, body=None, status=200, reason=None, headers=None, content_type='application/json', dumps=json.dumps)
_
ほとんどのパラメーターはジェネリックweb.Response(..)
と同じですが、dumps
はより興味深いものです。これは、データをJSONの同等のものに変換するメソッドへの参照です。デフォルトでは_json.dumps
_を使用します。ただし、クライアントに複雑なオブジェクトを書き込む予定の場合は、おそらくそれを変更する必要があります。今のところそれは結構です。