如何 return 带有 sanic API 的浮点数(或整数)?

How to return a float (or int) with a sanic API?

我正在创建一个简单的 Sanic REST API,但无法弄清楚 return 数值数据。看了at the docs,好像只能returnjsonhtmltext等,没有floatint.

除了将 return 切换为浮点数外,我正在按照文档中的基本示例进行操作:

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 语句是 return json({"hello": "world"}),它会完美地工作。为什么我不能 return 浮动?我可以 return 它作为 return text(1.1),但是调用它的客户会收到它作为 str(而不是 float)吗?

只是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)