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

Python中如何在POST请求中传递多词查询?

问题分析与解决

你遇到的问题是手动拼接JSON字符串时未正确转义双引号,导致服务器无法解析请求体。

从错误返回的body可以看到,生成的JSON里query字段变成了:

"query": "title:"search this""

这里title:后面的双引号直接闭合了query的字符串值,剩下的search this""完全破坏了JSON结构,所以服务器返回entity.parse.failed错误。

正确解决方法:用json模块序列化数据

不要手动拼接JSON字符串,改用Python的json模块来生成合法的JSON格式,它会自动处理所有需要转义的字符。

修改后的代码如下:

import json
import cgi

query = "title:\"search this\""
# 或者用单引号包裹更直观:query = 'title:"search this"'

form = cgi.FieldStorage()
n = form.getvalue('n')

# 先构造Python字典
request_data = {
    "cat": "boats",
    "query": query,
    "size": int(n)  # 注意把n转成整数,避免JSON里是字符串类型
}

# 序列化为标准JSON字符串
data = json.dumps(request_data, indent=2)

这样生成的data里,query字段会被正确转义为:

"query": "title:\"search this\""

完全符合JSON语法规范,服务器就能正常解析了。

额外提示

  • 尽量避免手动拼接JSON,除非你能确保所有特殊字符都正确转义,否则很容易出现格式错误。
  • form.getvalue('n')返回的是字符串类型,如果服务器要求size是整数,一定要转换类型,否则可能引发其他错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:20:31