Python Flask:如何将字典对象转换为 json?

Par*_*ras 4 python json flask

我对 Python 还很陌生。所以我有一个基于 Flask 的 REST API。所以我有一个字典,如下所示:

dict = {'left': 0.17037454, 'right': 0.82339555, '_unknown_': 0.0059609693}
Run Code Online (Sandbox Code Playgroud)

我需要将其添加到我的 json 响应对象中,如下所示:

message = {
                            'status': 200,
                            'message': 'OK',
                            'scores': dict 
                        }
                resp = jsonify(message)
                resp.status_code = 200
                print(resp)
                return resp
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

....\x.py", line 179, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: 0.027647732 is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗?谢谢。

Pan*_*hal 6

该代码对我来说运行良好。查看以下示例服务器代码:

from flask import Flask
from flask import jsonify

app = Flask(__name__)


@app.route('/')
def hello():
    d = {'left': 0.17037454, 'right': 0.82339555, '_unknown_': 0.0059609693}
    message = {
        'status': 200,
        'message': 'OK',
        'scores': d
    }
    resp = jsonify(message)
    resp.status_code = 200
    print(resp)
    return resp

if __name__ == '__main__':
    app.run()
Run Code Online (Sandbox Code Playgroud)

以下卷曲返回正常:

$ curl http://localhost:5000/
{
  "message": "OK", 
  "scores": {
    "_unknown_": 0.0059609693, 
    "left": 0.17037454, 
    "right": 0.82339555
  }, 
  "status": 200
}
Run Code Online (Sandbox Code Playgroud)

  • 对 `dict` 执行 `json.dumps`,然后执行 `jsonify(message)` 将会对 `dict` 执行两次 `jsonify`,您确定这是正确的做法吗? (2认同)