使用flask返回bool作为POST响应

时间:2016-02-01 14:41:29

标签: python api flask return boolean

我嘲笑一个Post api(用C#编写),它在调用时返回bool值true或false。 content-type是请求的application / json

true

我现在正试图使用​​Flask在Python中模拟该端点,并且我努力使其传递一个布尔值。

我试过

return make_response(True,200)

或只是

return True

并且在这两种情况下,api都无法发送所需的响应并抛出错误。

在一次绝望的尝试中,我试图回归" True"作为一个字符串

return make_response("True", 200)

这似乎在模拟级别工作,但消耗代码(c#)失败,因为它试图通过

将返回值转换为bool
result = response.Content.ReadAsAsync<bool>().Result

关于如何使模拟api返回bool值的任何想法???

2 个答案:

答案 0 :(得分:3)

您应该考虑发送json数据。

return json.dumps(True)

答案 1 :(得分:2)

您没有返回有效的JSON。在JSON中,布尔值是小写的,"true"。您可以使用json.dumps生成值的正确JSON序列化。您还应该将响应的内容类型设置为application/json。使用app.response_class构建响应。

from flask import json

return app.response_class(json.dumps(True), content_type='application/json')

通常,您会发送多个值作为响应。 Flask提供jsonify作为返回JSON对象的快捷方式,其中包含传递它的键和值。 (在Flask开发版中,它已被改进,以处理除了对象之外的其他数据。)

from flask import jsonify

return jsonify(result=True, id=id)