Mam serwer HTTP na aiohttp
z python-3.6. Jak mogę zwrócić web.Response()
poprzez JSON (z dict
)?aiohttp web.response body jako json
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.Response(res) # <-- as JSON
Mam serwer HTTP na aiohttp
z python-3.6. Jak mogę zwrócić web.Response()
poprzez JSON (z dict
)?aiohttp web.response body jako json
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.Response(res) # <-- as JSON
Można użyć web.json_response
:
async def api_server(request):
res = {"q": "qqq", "a": "aaa"}
return web.json_response(res)
Ponadto json_response
ma dodatkowe parametry, takie jak:
json_response(data, text=None, body=None, status=200, reason=None, headers=None, content_type=’application/json’, dumps=json.dumps)
Większość parametrów są takie same jak rodzajowego web.Response(..)
, ale dumps
jest bardziej interesujący: jest to odwołanie do metody, która konwertuje dane na swój odpowiednik JSON. Domyślnie używa json.dumps
. Jeśli jednak planujesz napisać złożone obiekty do klienta, być może powinieneś to zmienić. Na razie jest jednak dobrze.