AttributeError: ‘str’ object has no attribute ‘decode’

先上代码:

想细致研究下decode方法。于是,切换到命令行下启动Python3,输入如下内容:

出现错误提示:

AttributeError: ‘str’ object has no attribute ‘decode’

默认情况下,Python3中str的类型本身不是bytes,所以不能解码!

这里有两个概念:

  • 普通str:可理解的语义
  • 字节流str(bytes)(0101010101,可视化显示)

两个差异:

  • Python3的str 默认不是bytes,所以不能decode,只能先encode转为bytes,再decode。
  • *python2的str 默认是bytes,所以能直接调用decode。

于是,有结论:

str.decode 本质是bytes类型的str的decode!

python3经常出现 AttributeError: ‘str’ object has no attribute ‘decode’

如果您非要使用decode操作,则只能先encode转为bytes,再decode!

在本文最开始处展示的代码中,因为以二进制方式打开并读取文件,所以,读取的label是bytes,因为可以直接使用decode调用,是没有问题的!

Original: https://blog.51cto.com/zhuxianzhong/5513425
Author: googlingman
Title: AttributeError: ‘str’ object has no attribute ‘decode’

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504874/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球