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

POST请求触发JSONDecodeError:属性需用双引号包裹错误如何解决?

问题根因

你的错误完全来自plan1A1C函数最后两行的多余操作:

  1. body本身就是合法的Python字典对象,你调用str(body)把字典转为字符串时,Python默认会用单引号包裹字典的键和字符串值,输出格式类似{'payload': 'xxx'},不符合JSON要求的双引号规范,因此json.loads解析时直接抛出你看到的双引号相关报错。
  2. requests库post方法的json参数原生支持直接传入Python字典,不需要你手动做任何JSON序列化/反序列化操作,json.loads(str(body))属于完全多余的错误操作。

修复方案

直接把plan1A1C函数末尾的两行:

s1 = json.loads(str(body))
return s1

替换为:

return body

即可解决当前报错。

额外优化建议

  • 你导入的from behave.formatter import null完全没必要,Python原生用None表示空值,requests在序列化字典时会自动把None转为JSON标准的null,可以把这行导入删掉,将body里所有的null替换为None,代码更符合Python规范。
  • 你调用requests.post时最后多了个多余的逗号:response = requests.post(url, json= plan1A1C(),),可以删掉末尾逗号避免语法警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:15:03