You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask处理JSON请求时requests传递布尔值报错解决方案

报错原因
  • 小写true触发NameError:Python语法中合法布尔值为首字母大写的True/False,小写true不属于内置关键字,是未定义变量,因此直接抛出名称错误。
  • 大写True触发转义错误:传参方式错误,多数情况是将Python原生字典直接传给了requests的data参数。data参数默认接收表单类或字符串类请求体,不会自动将Python原生类型转换为标准JSON格式,传入布尔类型时就会触发转义异常。
正确实现方法

两种写法均可正常传递布尔值,优先选第一种:

  • 方法1:使用requests内置json参数(推荐)
    requests会自动完成Python类型到JSON标准类型的映射,将Python的True/False自动转换为JSON规范的true/false,同时自动设置Content-Type: application/json请求头,无需额外处理:
import requests

request_body = {"someBooleanValue": True}
# 注意传参给json参数,而非data参数
response = requests.post("目标Flask接口地址", json=request_body)

Flask端接口中直接调用request.get_json()即可拿到解析后的字典,布尔值会自动还原为Python的True/False类型。

  • 方法2:手动序列化后传入data参数
    如果有自定义序列化需求,可以先用标准库json将字典序列化为JSON字符串,再传给data参数,需要手动设置对应请求头:
import requests
import json

request_body = {"someBooleanValue": True}
json_data = json.dumps(request_body)
response = requests.post(
    "目标Flask接口地址",
    data=json_data,
    headers={"Content-Type": "application/json"}
)

内容的提问来源于stack exchange,提问作者Vee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:36:20