Python HMAC: TypeError: mappage de caractères doit retourner un entier, Aucun ou unicode

J'ai un léger problème avec HMAC. Lors de l'exécution de ce morceau de code:

signature = hmac.new(
    key=secret_key,
    msg=string_to_sign,
    digestmod=sha1,
)

J'obtiens une erreur étrange:

  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hmac.py", line 133, in new
    return HMAC(key, msg, digestmod)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hmac.py", line 72, in __init__
    self.outer.update(key.translate(trans_5C))
TypeError: character mapping must return integer, None or unicode

Quand j'ai l'impression string_to_sign, c'est une bonne chaîne comme ceci:

GET
\n
\n
application/json
\n
\n
\n

Que signifie l'erreur moyenne? Est-ce parce que de nouvelles lignes?

Prendre un coup d'oeil ici.
Merci. Pourriez-vous poster comme réponse? J'ai utilisé de django.utils.l'encodage.smart_bytes pour convertir d'unicode à l'octet string, puis elle travaille.

OriginalL'auteur Richard Knop | 2013-12-31