I have HTTP server on aiohttp
with python-3.6. How can I return web.Response()
through JSON (from a dict
)?
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.Response(res) # <-- as JSON
You can use web.json_response
:
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.json_response(res)
Furthermore the json_response
has additional parameters, like:
json_response(data, text=None, body=None, status=200, reason=None, headers=None, content_type='application/json', dumps=json.dumps)
Most of the parameters are the same as the generic web.Response(..)
, but the dumps
is more interesting: it is a reference to a method that converts data into its JSON equivalent. By default it uses json.dumps
. If you however plan to write complex objects to the client, you perhaps should alter that. For now it is fine however.