2016-08-19 5 views
-2
from base64 import b64decode 
uio = input("Please enter the text you want to decode...") 
pu = b64decode(uio.decode()) 
print("Decode text : ") 
print(pu) 

を使用してエンコードされたテキストをデコードすることはできません: -私はそれが私のこの告げるのpython

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

すべてのヘルプは高く評価されています...あなたはdecode()文字列オブジェクトにしようとしている

+0

簡単なpythonドキュメントを見ると、この質問は不要になります。 – nlsdfnbch

+0

YEah RIGHT :) .. –

答えて

1

。それは動作しません。 そのように、単純にそれを削除して、それはもうエラーを発生させるべきではありません:あなたは熱心なら

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

pu = b64decode(uio) 

あなたが特定していない場合は、文字列オブジェクトは常にありますが、これを行いますパフォーマンスは、tryのステートメントが成功しないことが多い場合はtry/exceptステートメントが優先されることに注意してください。そうでない場合は、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) 
+0

もちろん、 'b64decode()'の入力が有効であると仮定します。 – nlsdfnbch

-1

すべての文字列はUnicodeです。従って、デコードは必要ではない。 (とにかく、とにかくエンコードを指定するはずです:))。例:

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

これは間違っています。入力は文字列ではなくバイト状のオブジェクトでなければならないため、エラーが発生します。 – nlsdfnbch

関連する問題