用反斜杠Jsonify响应数据

时间:2019-12-10 14:21:49

标签: python json flask

我有一个Flask API,它以json格式发送响应

rep = {'application_id': 32657, 'business_rules_id': 20} # a python dictionary
rep_json = json.dumps(rep, cls=CustomizedEncoder) # converts to a json format string
return jsonify(rep_json), 200 . #return the flask response (with headers etc)

我可以看到烧瓶响应主体数据,响应类似于:

b'"{\\"application_id\\": 32567, \\"business_rules_id\\": 20}"\n'

或在邮递员体内

"{\"application_id\": 32567, \"business_rules_id\": 20}

我应该以JSON格式(没有反斜杠)得到响应吗?我想原因是json.dumps将字符串转储到json一次,然后jsonify转储第二次,这导致双引号被转义。

我需要运行以下命令的原因是因为我需要一个自定义编码器,而jsonify可能不支持。

rep_json = json.dumps(rep, cls=CustomizedEncoder)

我的另一种解决方案是先转储然后加载,但这会使它显得多余。返回Flask响应时,是否有其他方法可以使用自定义编码器?

这是我尝试过的另一种方法,但是看起来很奇怪

rep = {'application_id': 32657, 'business_rules_id': 20} # a python dictionary
rep_json = json.dumps(rep, cls=CustomizedEncoder) # converts to a json format string
return jsonify(json.loads(rep_json)), 200 . #return the flask response (with headers etc)

1 个答案:

答案 0 :(得分:2)

您可以将您的应用配置为使用app.json_encoder = CustomizedEncoder的客户编码器

https://kite.com/python/docs/flask.app.Flask.json_encoder