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'
感谢任何帮助...
答案 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"))