FastAPI接口无法返回ID列表问题求助
问题原因
你的循环代码里,return house["id"]会在第一次迭代时直接终止函数并返回结果,所以只会拿到第一个house的ID,后续循环根本不会执行。
解决方案
要返回所有ID的列表,你需要先收集所有ID到一个容器中,最后统一返回:
方法1:普通循环收集
@app.get("/") async def read_root(): houses = json.load(open("data.json"))["houses"]["house"] house_ids = [] for house in houses: house_ids.append(house["id"]) return house_ids
方法2:列表推导式(更简洁)
@app.get("/") async def read_root(): houses = json.load(open("data.json"))["houses"]["house"] return [house["id"] for house in houses]
额外建议:处理文件时用with语句管理上下文,避免资源泄漏:
@app.get("/") async def read_root(): with open("data.json") as f: houses = json.load(f)["houses"]["house"] return [house["id"] for house in houses]
内容的提问来源于stack exchange,提问作者Paulo Alves
相关产品推荐
相关产品推荐

