TypeError:需要一个类似字节的对象,而不是使用 pickle 加载时的“str”

Posted

技术标签:

【中文标题】TypeError:需要一个类似字节的对象,而不是使用 pickle 加载时的“str”【英文标题】:TypeError: a bytes-like object is required, not 'str' while loading with pickle 【发布时间】:2019-04-02 19:13:38 【问题描述】:

我正在使用 Python 3.6 和 Spyder (Anaconda)。 我尝试了很多事情,但没有任何结果。 我不知道为什么在加载 pickle 时总是出现这个错误。

filename = "allfeatures.txt"
allfeatures = open(filename, 'r').read()
with open(filename) as f:
     allfeatures = list(f)
allconcat = np.vstack(list(allfeatures.values()))
TypeError                           Traceback (most recent call last)
 AttributeError: 'list' object has no attribute 'values'

【问题讨论】:

加载txt文件不需要pickle,直接打开读取即可。 请将您的错误作为文本,而不是图像。 Pickle: TypeError: a bytes-like object is required, not 'str'的可能重复 AttributeError: '_io.BufferedReader' 对象没有属性 'decode' 【参考方案1】:

您需要将文件作为二进制文件打开:

pickle.loads(open("accounts.txt", 'rb').read())

否则,它使用str 来读取数据。

【讨论】:

然后我又收到了这个错误............UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)跨度>

以上是关于TypeError:需要一个类似字节的对象,而不是使用 pickle 加载时的“str”的主要内容,如果未能解决你的问题,请参考以下文章

“TypeError:在 OAuth 2.0 回调请求期间需要一个类似字节的对象,而不是 'str'”

诱变剂:TypeError:需要一个类似字节的对象,而不是“str”

TypeError:需要一个类似字节的对象,而不是“str”套接字编程

Django Rest Framework TypeError需要一个类似字节的对象,而不是'str'

TypeError:需要一个类似字节的对象,而不是使用 pickle 加载时的“str”

TypeError:在尝试发送 http 请求时需要一个类似字节的对象,而不是“str”