Как вернуть число с плавающей точкой (или int) с помощью стандартного API? - PullRequest
0 голосов
/ 27 января 2019

Я создаю простой API REST Sanic, но не могу понять, как вернуть числовые данные.После просмотра документов выясняется, что вы можете вернуть только json, html, text и т. Д., Но не float или int.

Я следую базовому примеру в документах, за исключением того, что переключил возврат в число с плавающей точкой:

from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
    return 1.1

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

Однако, он отлично работает, если оператор возврата равен return json({"hello": "world"}).Почему я не могу вернуть поплавок?Я могу вернуть его как return text(1.1), но тогда клиент, который его вызывает, получает его как str (в отличие от float)?

1 Ответ

0 голосов
/ 27 января 2019

Просто JSON ваш номер.

>>> import json
>>> s = json.dumps(543.34)
>>> s
'543.34'
>>> json.loads(s)
543.34

С Sanic:

from sanic import Sanic, response
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
    return response.json(1.1)

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)
...