首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用flask返回bool作为POST响应

使用flask返回bool作为POST响应
EN

Stack Overflow用户
提问于 2016-02-01 22:41:29
回答 2查看 11.2K关注 0票数 2

我正在模拟一个Post api (用C#编写),它在被调用时返回一个布尔值true或false。请求的content-type为application/json

代码语言:javascript
运行
复制
true

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

我试过了

代码语言:javascript
运行
复制
return make_response(True,200)

或者简单地说

代码语言:javascript
运行
复制
return True

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

在一次绝望的尝试中,我尝试将"True“作为字符串返回

代码语言:javascript
运行
复制
return make_response("True", 200)

这似乎在模拟级别工作,但消费代码(c#)失败了,因为它试图通过以下方式将返回值转换为布尔值

代码语言:javascript
运行
复制
result = response.Content.ReadAsAsync<bool>().Result

有关于如何让模拟api返回布尔值的想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-01 22:56:10

您应该考虑发送json数据。

代码语言:javascript
运行
复制
return json.dumps(True)
票数 8
EN

Stack Overflow用户

发布于 2016-02-01 23:29:53

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

代码语言:javascript
运行
复制
from flask import json

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

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

代码语言:javascript
运行
复制
from flask import jsonify

return jsonify(result=True, id=id)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35133318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档