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

np.load执行时报错'_io.BufferedReader' object is not subscriptable如何解决

错误原因与修复方案

报错释义

你遇到的报错Typeerror: '_io.BufferedReader' object is not subscriptable翻译为:类型错误:'_io.BufferedReader' 对象不支持下标索引操作

错误根因

你的代码中(_f)[0]是直接对open()返回的文件流对象_f做下标索引,该类对象本身不支持[x]形式的取值操作,你误将未加载的文件对象当成了已读取完成的数组/字典结构。

修复方法

根据你存储的npy文件结构二选一即可:

  • 若f_hr对应的npy文件本身就是包含image键的字典,修改为以下代码:
# 写法1:保留文件读取上下文
with open(f_hr, 'rb') as _f: 
    hr = np.load(_f, allow_pickle=True)['image']

# 写法2:简化版,np.load支持直接传入文件路径
hr = np.load(f_hr, allow_pickle=True)['image']
  • 若f_hr对应的npy文件存储的是数组列表,第一个元素才是包含image键的字典,修改为以下代码:
with open(f_hr, 'rb') as _f: 
    loaded_data = np.load(_f, allow_pickle=True)
    hr = loaded_data[0]['image']

补充说明

该报错属于代码逻辑错误,和你当前使用的Colab环境、Python 3.7版本、numpy 1.19.5版本均无关联,调整取值逻辑后即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:36:03