Postman向FastAPI提交JSON提示“value is not a valid dict”问题求助
解决FastAPI接收POST请求时"value is not a valid dict"错误
核心原因
这个错误本质是FastAPI无法将请求体解析为字典类型,最常见的原因是Postman的请求配置不符合JSON格式要求。
解决步骤
1. 修正Postman的请求配置
- 切换到请求的Body标签页,选择raw格式,右侧下拉菜单中务必选JSON(不要选Text或其他格式)
- 检查请求头(Headers):确保存在
Content-Type键,对应值为application/json。如果没有,手动添加:Content-Type: application/json
2. 优化FastAPI代码(可选但推荐)
直接用dict作为请求体类型虽可行,但使用Pydantic模型更规范,还能自动提供参数验证和接口文档:
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() # 定义请求体模型 class PostRequest(BaseModel): title: str @app.post("/posts") def post_req(payload: PostRequest): print(payload.dict()) # 转为字典格式使用 return {"Message": "Posted!!!"}
验证方法
重新发送请求后,服务端终端应返回200 OK并打印请求体内容,Postman会收到{"Message": "Posted!!!"}的响应。
内容的提问来源于stack exchange,提问作者BumbleBee
相关产品推荐
相关产品推荐

