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

如何在Python的POST请求中以JSON对象传递字典参数

在Python POST请求中正确传递嵌套字典作为JSON对象

问题根源

你之前的错误在于把Mybooks字段赋值成了字符串"myList",而不是直接引用字典变量myList——这会导致请求里传递的是纯文本字符串,而非后端期望的嵌套JSON对象。

正确实现方式

1. 正确构建参数字典

直接将字典变量赋值给Mybooks字段,不要加引号:

# 定义嵌套的书籍字典
myList = {'Title1':'ABC','Title2':'XYZ'}
# 构建完整请求参数
myparams = {
    "userid":"datta",
    "Mybooks": myList  # 直接引用变量,而非字符串"myList"
}

2. 发送POST请求(推荐用法)

使用requests库的json参数,它会自动将字典序列化为JSON字符串,并设置正确的Content-Type: application/json请求头:

import requests

# 替换为你的目标API地址
api_url = "https://example.com/api/endpoint"
response = requests.post(api_url, json=myparams)

# 可选:查看响应结果
print(response.status_code)
print(response.json())

3. 手动序列化JSON(进阶用法)

如果需要手动控制序列化过程,可以用json.dumps()将字典转为JSON字符串,同时手动设置请求头:

import json
import requests

api_url = "https://example.com/api/endpoint"
# 将参数字典转为JSON字符串
json_data = json.dumps(myparams)
# 设置正确的Content-Type头
headers = {"Content-Type": "application/json"}

response = requests.post(api_url, data=json_data, headers=headers)

这样发送的请求中,Mybooks字段会被解析为嵌套的JSON对象,而非字符串,后端就能正确处理了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:01:00