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

Flask如何将上传文件传入方法?报'_io.BytesIO'无lower属性错误

错误原因

你传入mining方法的参数是Flask接收上传文件生成的FileStorage对象,而pm4py的xes_importer.apply()预期接收的是本地文件的路径字符串,方法内部会对传入的路径执行小写转换处理,拿到BytesIO类型的流对象自然会抛出没有lower属性的报错。

解决方法

你已经将上传文件保存到了本地指定目录,直接把保存后的完整文件路径传给mining方法即可,同时需要补充mining方法的返回值,否则Flask视图会抛出无有效响应的错误。

需修改的代码段:

  1. 修改upload_file路由中调用mining的逻辑
if file and allowed_file(file.filename):
    filename = secure_filename(file.filename)
    save_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
    file.save(save_path)
    # 传入保存后的文件路径而非FileStorage对象
    return mining(save_path)
  1. 给mining方法补充返回值(示例)
def mining(xes):
    log = xes_importer.apply(xes)
    tracefilter_log_pos = attributes_filter.apply_events(log, ["complete"], parameters={attributes_filter.Parameters.ATTRIBUTE_KEY: "lifecycle:transition", attributes_filter.Parameters.POSITIVE: True})
    variants = pm4py.get_variants_as_tuples(tracefilter_log_pos)
    Alpha(variants.keys())
    Heuristic(variants.keys(), 1, 0.5)
    # 补充返回响应,可根据需求调整
    return "文件处理完成"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:36:05