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

Python中array.frombytes读取bytes对象触发TypeError报错求助

问题解决:TypeError: descriptor 'frombytes' for 'array.array' objects doesn't apply to a 'bytes' object

错误出在array.frombytes(ab)这一行——frombytes()是array.array的实例方法,不能直接通过类调用,必须先创建对应类型的数组实例,再调用该方法写入bytes数据。

修正方案1:创建空实例后调用frombytes

from array import array
arr = array('B',[8, 3, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 2])
ab = arr.tobytes()
# 初始化同类型的空数组
new_arr = array('B')
# 调用实例方法frombytes写入数据
new_arr.frombytes(ab)
print(new_arr)  # 输出: array('B', [8, 3, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 2])

修正方案2:直接用构造函数从bytes创建数组

更简洁的方式是利用array.array的构造函数,直接传入类型码和bytes对象:

from array import array
arr = array('B',[8, 3, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 2])
ab = arr.tobytes()
# 直接通过构造函数生成数组
new_arr = array('B', ab)
print(new_arr)  # 输出: array('B', [8, 3, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 2])

两种方案都能在Python 3.10+环境中正常运行,解决你遇到的类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:05:19