2017-07-20 14 views
6

Tôi có máy chủ HTTP trên aiohttp với . Làm thế nào tôi có thể trả lại web.Response() thông qua JSON (từ một số dict)?aiohttp web.response body as json

async def api_server(request): 
    res = {"q": "qqq", "a": "aaa"} 
    return web.Response(res) # <-- as JSON 

Trả lời

8

Bạn có thể sử dụng web.json_response:

async def api_server(request): 
    res = {"q": "qqq", "a": "aaa"} 
    return web.json_response(res)

Hơn nữa json_response có tham số bổ sung, như:

json_response(data, text=None, body=None, status=200, reason=None, 
       headers=None, content_type=’application/json’, dumps=json.dumps)

Hầu hết các thông số đều giống nhau như chung web.Response(..) , nhưng số dumps thú vị hơn: nó là một tham chiếu đến một phương thức chuyển đổi dữ liệu thành tương đương JSON của nó. Theo mặc định, nó sử dụng json.dumps. Tuy nhiên, nếu bạn có kế hoạch viết các đối tượng phức tạp cho máy khách, có lẽ bạn nên thay đổi nó. Bây giờ nó là tốt tuy nhiên.

Các vấn đề liên quan