Python 3.3 mit Dropbox-API
Verfasst: Freitag 22. Februar 2013, 14:42
Hallo liebe Python Gemeinde,
mein Name ist Mario, ich bin neu in diesem Forum. Ich mache gerade meine ersten Gehversuche mit Python und war der Meinung, dass es sich anbietet direkt mit der aktuellsten Version also 3.3 durchzustarten.
In diesen Zusammenhang versuche ich mittels Dropbox-API auf ein Verzeichnis meiner D-Box zuzugreifen.
Die Probleme, die ich dabei gerade habe, sind ganz offensichtlich den Änderungen von Version 2 zu Version 3 geschuldet.
Natürlich wäre eine Lösung zu Version 2.7 zu wechseln, doch würde ich vorerst gerne das eigentliche Problem verstehen und evtl. sogar eine Lösung dafür finden. Folgend der betreffende Code-Teil aus der aktuellen Dropbox API session.py.
Probleme bereitet dieser Aufruf:
Nach etwas Forschung konnte ich das Problem durch ändern des Aufrufes in beseitigen. Was genau aber habe ich da eigentlich gemacht? Was macht parse_qs?
Ist die API nicht Python 3 kompatibel? Laut Changelog hat es dafür Anpassungen in der Dropbox API gegeben.
Ist es für einen Anfänger sinnvoll, sich noch mit der 2er Version von Python zu befassen?
Danke schon mal und schöne Grüße
mein Name ist Mario, ich bin neu in diesem Forum. Ich mache gerade meine ersten Gehversuche mit Python und war der Meinung, dass es sich anbietet direkt mit der aktuellsten Version also 3.3 durchzustarten.
In diesen Zusammenhang versuche ich mittels Dropbox-API auf ein Verzeichnis meiner D-Box zuzugreifen.
Die Probleme, die ich dabei gerade habe, sind ganz offensichtlich den Änderungen von Version 2 zu Version 3 geschuldet.
Natürlich wäre eine Lösung zu Version 2.7 zu wechseln, doch würde ich vorerst gerne das eigentliche Problem verstehen und evtl. sogar eine Lösung dafür finden. Folgend der betreffende Code-Teil aus der aktuellen Dropbox API session.py.
Code: Alles auswählen
...
import urllib.request, urllib.parse, urllib.error
...
@classmethod
def _parse_token(cls, s):
if not s:
raise ValueError("Invalid parameter string.")
params = parse_qs(s, keep_blank_values=False)
if not params:
raise ValueError("Invalid parameter string: %r" % s)
try:
key = params['oauth_token'][0]
except Exception:
raise ValueError("'oauth_token' not found in OAuth request.")
try:
secret = params['oauth_token_secret'][0]
except Exception:
raise ValueError("'oauth_token_secret' not found in "
"OAuth request.")
return OAuthToken(key, secret)
Code: Alles auswählen
key = params['oauth_token'][0]Code: Alles auswählen
key = params[b'oauth_token'][0]Ist die API nicht Python 3 kompatibel? Laut Changelog hat es dafür Anpassungen in der Dropbox API gegeben.
Ist es für einen Anfänger sinnvoll, sich noch mit der 2er Version von Python zu befassen?
Danke schon mal und schöne Grüße