2017-10-04 5 views
0

現在、サーバーからハッシュを取得する際に問題が発生しています。ここサーバーからハッシュを取得できません。

TypeError: Unicode-objects must be encoded before hashing 

はエラーです:

AttributeError: 'bytes' object has no attribute 'encode' 

任意のアイデア:

data = urllib2.urlopen(url) #request 
hash = hashlib.md5(data.read().decode('utf-8')).hexdigest() # 

は実際に私がエンコードによってデコード()を交換しようとした()が、それは別のエラーを与えますか?

+1

'.decode( 'utf-8')'を削除するだけです。 –

+0

ありがとう!私はここでデコードが重要だと考えましたが、私のエラーを修正しました –

+0

理解のために: 'urlopen()'の 'read()'はバイトを返します。 'decode()'はバイトをユニコード文字列に変換します。そして 'md5()'はバイトを入力として要求します。 –

答えて

1

.decode('utf-8')を削除するだけです。

read()urlopen()はバイトを返します。 decode()は、バイトをユニコード文字列に変換します。そして、md5()は入力としてバイトを必要とします。

関連する問題