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

FastAPI按language查询仅返回单条结果,如何获取全部匹配数据?

解决FastAPI按language查询返回所有匹配结果的问题

你的问题出在循环中找到第一个匹配项就直接return,导致后续匹配的结果无法被收集返回。修改思路是先收集所有符合条件的数据,再统一返回:

修改后的代码如下:

@app.get("/data_lan")
def data_lan(language: str):
    # 初始化空列表存储匹配结果
    matched_data = []
    for d in data:
        if data[d]["language"] == language:
            # 将匹配项添加到列表,而非直接返回
            matched_data.append(data[d])
    # 根据列表是否为空返回对应结果
    return matched_data if matched_data else {"data": "NULL !!!"}

关键修改点:

  • 创建matched_data列表,用来存放所有符合条件的数据条目
  • 遍历过程中,找到匹配项时执行append操作,而非立即返回
  • 遍历完成后,检查列表是否有内容:有则返回列表,无则返回空数据提示

这样访问http://127.0.0.1:8000/data_lan?language=en时,就会返回所有language为en的条目:

[
    {"sn":2,"name":"B","number":"2","language":"en"},
    {"sn":3,"name":"AB","number":"3","language":"en"}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:18:09