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

Python Flask服务按输入马力筛选匹配车辆记录无返回问题求助

代码问题清单
  • 变量重名冲突:for循环内覆盖了从请求参数获取的horsepower变量,原始查询值被替换为当前遍历记录的马力值
  • 参数类型不匹配:请求参数拿到的horsepower为字符串类型,未转换为整数,无法和数值类型的马力字段正确匹配
  • 判断逻辑错误:条件判断写为horsepower == record,是将马力值和整条车辆记录字典对比,永远返回False
  • 匹配结果未写入返回值:即使匹配到符合条件的车辆,也没有将车辆名称追加到返回的message变量中,接口仅返回开头的马力标题
  • 缩进不规范:for循环内的代码缩进不符合Python语法要求,会导致逻辑执行异常
修复后完整代码
from flask import Flask
from flask import request
import os, json

app = Flask(__name__, static_folder='flask')

@app.route('/HORSEPOWER')   
def horsepower():
    # 读取查询参数并做合法性校验
    query_hp = request.args.get('horsepower')
    if not query_hp:
        return "<h3>错误:缺少horsepower参数</h3>"
    try:
        query_hp = int(query_hp)
    except ValueError:
        return "<h3>错误:horsepower参数必须为整数</h3>"
   
    # 拼接返回内容头部
    message = f"<h3>HORSEPOWER {query_hp}</h3><ul>"

    # 读取车辆数据文件
    path = os.getcwd() + "/data/vehicles.json"
    with open(path, encoding='utf-8') as f:
        data = json.load(f)
        
    # 遍历匹配符合马力要求的车辆
    for record in data:
        current_hp = int(record["Horsepower"])
        if current_hp == query_hp:
            car_name = record["Car"]
            message += f"<li>{car_name}</li>"
    
    # 拼接返回内容尾部
    message += "</ul>"
    return message

if __name__ == '__main__':
    app.run(debug=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:06:07