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

FastAPI通过URL传递整数列表参数报错的问题求助

问题原因及解决方法

核心原因

  1. 接口路径不匹配:你的代码中定义的接口路径是/process_integers_url/,但你访问的URL路径是/process_integers/,两者不一致,导致请求没有命中正确的处理函数,最终返回预设的错误信息。
  2. 列表参数解析配置缺失:即使路径正确,FastAPI对查询参数中的列表类型,需要显式用Query类声明才能确保正确解析重复的参数键,否则可能出现numbers始终为None的情况。

解决步骤

步骤1:修正访问路径

将请求URL改为与代码中定义的路径一致:

http://localhost:8000/process_integers_url/?numbers=1&numbers=2&numbers=3

步骤2:优化参数定义

修改代码中的参数声明,使用Query类明确指定列表类型的查询参数,确保FastAPI能正确解析重复的numbers参数:

from fastapi import FastAPI, Query
from typing import List

app = FastAPI()

@app.get("/process_integers_url/")
async def process_integers_url(numbers: List[int] = Query(None)):
    if numbers is None:
        return {"error": "No numbers provided!"}    
    result_sum = sum(numbers)
    result_product = 1
    for num in numbers:
        result_product *= num
    return {
        "sum": result_sum,
        "product": result_product,
    }

额外优化建议

如果希望强制要求必须传递numbers参数,可以将参数默认值改为...,即numbers: List[int] = Query(...),这样当未传参数时,FastAPI会自动返回422验证错误,无需手动判断None值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:43:27