我在python 3.3.4中的decode
方法中遇到了一些问题。这是我的代码:
for line in open('file','r'):
decodedLine = line.decode('ISO-8859-1')
line = decodedLine.split('\t')
字符串
但我无法解码这个问题的行:
AttributeError: 'str' object has no attribute 'decode'
型
你有什么想法吗?谢谢
我在python 3.3.4中的decode
方法中遇到了一些问题。这是我的代码:
for line in open('file','r'):
decodedLine = line.decode('ISO-8859-1')
line = decodedLine.split('\t')
字符串
但我无法解码这个问题的行:
AttributeError: 'str' object has no attribute 'decode'
型
你有什么想法吗?谢谢
5条答案
按热度按时间brtdzjyr1#
一个对字符串进行 * 编码,一个对字节进行 * 解码。
你应该从文件中读取字节并解码它们:
字符串
幸运的是,
open
有一个编码参数,这使得这很容易:型
ruoxqz4g2#
open
已经在Python 3中解码为Unicode,如果你以文本模式打开它。如果你想以字节打开它,那么你就可以解码,你需要以模式'rb'打开。bnl4lu3b3#
在
PyJWT 2.0.0
版本没有decode
方法之后,我们得到了这个错误。我们应该冻结下面的版本以避免这个问题。字符串
dsekswqp4#
这对我在Python 3.6中顺利阅读中文文本很有效。首先,将str转换为字节,然后解码它们。
字符串
rm5edbpk5#
在Python 3中,使用这个心理模型:
str
对象转换为bytes
对象的过程bytes
对象转换为str
对象的过程的数据
你得到了错误
'str' object has no attribute 'decode'
。如果你需要一个str
,没有必要在它上面运行decode()
。直接访问变量而不调用decode()
。