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

Python Requests传递键值对列表:REST POST请求模拟失败问题

解决POST请求参数格式问题

你当前代码无法正常工作的核心原因是:你用json.dumps()将参数转换为JSON字符串传递给data,这会让请求体以JSON格式发送,但服务器期望接收的是application/x-www-form-urlencoded类型的表单数据——也就是你给出的URL里那种var[0][a]=1&var[0][b]=23的键值对结构。

正确的实现代码

直接将字典参数传给data即可,requests会自动帮你把嵌套的数组/字典结构编码成目标格式:

import requests

params = {"var": [{'a': 1, 'b': 23}]}
resp = requests.post("https://example.com/rest/server.php", data=params)

原理说明

当你把Python字典传递给requests.post()的data参数时,requests会自动处理嵌套结构,生成与目标URL参数一致的表单编码内容,对应的请求体就会是:

var[0][a]=1&var[0][b]=23

同时requests会自动设置正确的请求头Content-Type: application/x-www-form-urlencoded,匹配服务器的参数解析要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 14:07:54