J'ai un serveur HTTP sur aiohttp
avec python-3.6 . Comment puis-je retourner web.Response()
via JSON (à partir d'un dict
)?
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.Response(res) # <-- as JSON
Vous pouvez utiliser web.json_response
:
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.json_response(res)
De plus, le json_response
A des paramètres supplémentaires, comme:
json_response(data, text=None, body=None, status=200, reason=None, headers=None, content_type='application/json', dumps=json.dumps)
La plupart des paramètres sont les mêmes que la générique web.Response(..)
, mais la dumps
est plus intéressante: c'est une référence à une méthode qui convertit les données en son équivalent JSON. Par défaut, il utilise json.dumps
. Si vous prévoyez cependant d'écrire des objets complexes sur le client, vous devriez peut-être modifier cela. Pour l'instant, c'est bien.