2017-10-04 1 views
0

Je rencontre actuellement un problème lors de l'obtention du hachage à partir du serveur.Impossible d'obtenir le hachage du serveur

TypeError: Unicode-objects must be encoded before hashing 

ici est une erreur:

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

En fait, j'essayé de remplacer decode() par encode() mais il donne une autre erreur:

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

Toutes les idées?

+1

Supprimez simplement '.decode ('utf-8')'. –

+0

merci! Je pensais que le décodage est important ici, mais il corrige mon erreur –

+0

Juste pour la compréhension: 'read()' de 'urlopen()' renvoie des octets. 'decode()' convertira les octets en une chaîne unicode. Et 'md5()' nécessite des octets en entrée. –

Répondre

1

Supprimez simplement le .decode('utf-8'). Pour la compréhension: read()urlopen() renvoie des octets. decode() convertira les octets en une chaîne unicode. Et md5() nécessite des octets en entrée.