2016-06-18 18 views
2

Ich versuche, einen Twitter-Bot, der Requests-Bibliothek verwendet, um Daten von Nytimes API zu bekommen.
Es gibt eine Zeile im CodeAnfragen: Modul funktioniert lokal, aber auf pythonanywith fehlgeschlagen

resp = requests.get(API_ENDPOINT, my_params) 

Jetzt sehr gut das funktioniert, wenn ich es lokal ausgeführt. Also habe ich es auf pythonanywhere hochgeladen. Der Moment, als ich versuchte, es zu laufen habe ich diesen Fehler:

resp = requests.get(API_ENDPOINT, my_params)
TypeError: get() takes exactly 1 argument (2 given)

Was ist passiert? Ich habe angefangen, Anfragen sowie pythonanywhere vor kurzem zu benutzen. Also habe ich buchstäblich keine Ahnung, wo ich mit dem Debuggen anfangen soll.

+0

Kurze Frage: Warum haben Sie die Antwort nicht akzeptiert. Fehlt etwas darin? – alecxe

+0

Oh Mist, ich muss beim Scrollen am Telefon durcheinander gebracht haben. Sehr leid! Die Antwort hat mein Problem gelöst. Nichts ist falsch damit. :) – ChaoticTwist

Antwort

2

Sie haben verschiedene requests Versionen auf PythonAnywhere und lokal installiert.


Von dem, was ich sehe, requests Version auf PythonAnywhere installiert ist 2.4.0. An diesem Punkt Sie specify params keyword argument explicitly hatte:

requests.get(url, **kwargs)

Und Sie haben zu schreiben:

resp = requests.get(API_ENDPOINT, params=my_params) 

In der neuesten Version (2.10.0 im Moment), können Sie haben params angegeben as a positional argument :

requests.get(url, params=None, **kwargs)

resp = requests.get(API_ENDPOINT, my_params) 
+2

Sie können auch Anforderungen auf pythonanywhere aktualisieren, wenn Sie möchten: https://help.pythonanywhere.com/pages/InstallingNewModules, https://help.pythonanywhere.com/pages/Virtualenvs – hwjp

0

Sie können es wie folgt tun:

API_ENDPOINT = 'http://your_endpoint_url.com" 

my_params = {'key1': 'value1', 'key2': 'value2'} 

r = requests.get(API_ENDPOINT, params=my_params) # notice params is named named