Mit oauth2 Daten von Twitter zu bekommen, aber immer den Fehler:Python 3.4 Fehler "Unicode-Objekte müssen vor Hashing codiert werden"
Unicode-objects must be encoded before hashing
unter Verwendung des Codes,
def oauth_req(url, key, secret, http_method="GET", post_body="",http_headers=None):
consumer = oauth2.Consumer(key=API_KEY, secret=API_SECRET)
token = oauth2.Token(key=key, secret=secret)
client = oauth2.Client(consumer, token)
resp, content = client.request(url, method=http_method, body=post_body, headers=http_headers)
return content
data = oauth_req(url, TOKEN_KEY, TOKEN_SECRET)
Auch versuchte utf8 codierte Werte für die Variablen, die ich in def übergebe.
File "<pyshell#11>", line 1, in <module>
data = oauth_req(url, TOKEN_KEY, TOKEN_SECRET)
File "<pyshell#8>", line 6, in oauth_req
body=post_body, headers=http_headers)
File "C:\Python35-32\lib\site-packages\oauth2_init_.py", line 673, in request
req.sign_request(self.method, self.consumer, self.token)
File "C:\Python35-32\lib\site-packages\oauth2_init_.py", line 493, in sign_request
self['oauth_body_hash'] = base64.b64encode(sha1(self.body).digest())
TypeError: Unicode-objects must be encoded before hashing
Können Sie die vollständige Traceback Ihrer Ausnahme buchen? Aus Ihrer Beschreibung geht nicht eindeutig hervor, welcher 'oauth2'-Aufruf das Problem verursacht. – Blckknght
Es geht wie folgt: Traceback (jüngste Aufforderung zuletzt): File "" Linie 1 in data = oauth_req (url, TOKEN_KEY, TOKEN_SECRET) File "", Zeile 2, in oauth_req Verbraucher = oauth2.Consumer (key = API_KEY, secret = API_SECRET) NameError: Name 'oauth2' ist nicht definiert –
Bitte bearbeiten Sie die Traceback in die Frage, wo Sie es richtig formatieren können. Wie auch immer, das sieht nach einer ganz anderen Ausnahme aus als das, was Sie vorher erwähnt haben. 'NameError: Name 'oauth2' ist nicht definiert 'weist darauf hin, dass Sie das Modul' oauth2 'nicht importiert haben und nichts mit Codierungen oder Unicode-Objekten zu tun haben. – Blckknght