我无法使用python解码编码文本

时间:2016-08-19 05:57:39

标签: python decode

from base64 import b64decode
uio = input("Please enter the text you want to decode...")
pu = b64decode(uio.decode()) 
print("Decode text : ")
print(pu)

它告诉我: -

pu = b64decode(uio.decode())
AttributeError: 'str' object has no attribute 'decode'

感谢任何帮助...

2 个答案:

答案 0 :(得分:1)

您正在尝试decode()字符串对象。这不起作用。 只需删除它,它不应再引发错误,如下所示:

pu = b64decode(uio)

如果您不确定是否总是有字符串对象执行此操作:

try:
   pu =  b64decode(uio.decode('utf-8'))
except AttributeError:
   pu = b64decode(uio)

如果您热衷于表现,请注意,如果try/except中的语句经常成功,则首选try语句。如果没有,请使用if/else语句替换它,或者只是交换try/except中的语句 - 但要确保它捕获特定的异常。

另请注意,在python3中,b64decode()采用byte-like对象,而不是字符串。因此,上面的代码必须是这样的:

try:
    pu = b64decode(uio.encode('utf-8'))  # Note the use of encode()
except AttributeError:
    pu = b64decode(uio)

答案 1 :(得分:-1)

在Python 3中,所有字符串都是unicode。因此,不需要解码。 (另外,你应该指定一个编码:))。例如:

pu = b64decode(uio.decode("utf-8"))