首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UnicodeDecodeError:“ascii”编解码器无法解码位置5中的字节0xcc

UnicodeDecodeError:“ascii”编解码器无法解码位置5中的字节0xcc
EN

Stack Overflow用户
提问于 2017-02-25 13:15:42
回答 1查看 2.2K关注 0票数 0

我正在尝试使用以下代码读取文件。

代码语言:javascript
运行
复制
precomputed = pickle.load(open('test/vgg16_features.p', 'rb'))
features = precomputed['features']

但是得到这个错误。

代码语言:javascript
运行
复制
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 5: ordinal not in range(128)

我尝试读取的文件包含使用深度神经网络提取的图像特征。文件内容如下所示。

代码语言:javascript
运行
复制
(dp0
S'imageIds'
p1
(lp2
I262145
aI131074
aI131075
aI393221
aI393223
aI393224
aI524297
aI393227
aI393228
aI262146
aI393230
aI262159
aI524291
aI322975
aI131093
aI524311
....
....
....

请注意,这是一个大文件,大小为2.8 of。

我知道这是一个重复的问题,但我遵循了其他stackoverflow帖子中的建议解决方案,但无法解决它。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-26 01:47:58

最后我找到了解决方案。问题实际上是关于unpickling a python 2 object with python 3的,我一开始无法理解它,因为我得到的pickle文件是通过Python2程序编写的。

多亏了this answer,它解决了这个问题。因此,我需要做的就是将pickle.load()函数的encoding参数设置为latin1,因为latin1可以处理任何输入,因为它将字节值0-255直接映射到前256个Unicode码点。

所以,下面的方法对我很有效!

代码语言:javascript
运行
复制
precomputed = pickle.load(open('test/vgg16_features.p', 'rb'), encoding='latin1')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42452255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档