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

Python调用load_data出现generator对象不可下标错误如何解决?

问题原因

你使用的liac-arff依赖为2.x版本,该版本中arff.load()接口返回的字典内,attributes字段是生成器对象而非列表:

  • 生成器仅支持一次遍历,你首次遍历data["attributes"]生成column_list后,生成器就会被耗尽,后续二次遍历拿不到任何数据
  • 生成器不支持下标索引操作,触发你遇到的'generator' object is not subscriptable报错

解决方案

方案1:修改现有代码(推荐,无需改依赖版本)

在读取arff文件的代码块后新增一行,把生成器转为列表,原有后续逻辑无需改动:

# read arff file
with open(arff_filename, "r") as fp:
    data = arff.load(fp)
# 新增下方这行代码
data["attributes"] = list(data["attributes"])

方案2:降级liac-arff到1.x版本

1.x版本的arff.load()返回的attributes本身就是列表,完全适配你的原有代码,执行以下命令降级即可:

pip install liac-arff==1.1.0

额外注意

你现有代码里还有一处变量拼写错误:raise NotImplementedError("attribute {} is not supported.".format(att[1])) 这里的att[1]应该改为attr[1],否则后续遇到非数值/非枚举类型的属性时会触发NameError报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:15:06