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

本地部署FastAPI+Uvicorn后如何在Jupyter中正确调用接口解决422报错

FastAPI /predict接口422报错解决方法

错误根因

  • 你调用requests.post时直接把请求字典作为第二个参数传入,requests默认会将其编码为表单格式,而你的FastAPI接口通过Pydantic BaseModel定义的入参要求接收JSON格式的请求体,服务端解析请求体失败就会返回422状态码。
  • 你定义的params变量容易和requests内置的params关键字参数混淆,后者是用来拼接URL查询参数的,和本次需要传递的请求体不属于同个参数位。

修正后的请求代码

import requests

url = 'http://127.0.0.1:8000/predict'
# 定义JSON请求体
payload = {'title': ['Product Operations Software Engineer (DevOps / SRE)']}

# 直接使用json关键字参数传参,requests会自动设置正确的请求头并序列化字典为JSON
result = requests.post(url, json=payload)

# 打印返回结果
print(result.status_code)
print(result.json())

可选优化(服务端代码)

可以把Pydantic模型的字段定义更严谨,避免非法类型数据传入:

class JobTitle(BaseModel):
    title: list[str] # 明确要求字段为字符串列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:15:05