2016-04-20 10 views
0

Ich habe die folgende URL:Params in Anfragen (Python)

url = 'http://api.worldweatheronline.com/premium/v1/weather.ashx?key=KEY_VALUE&q=48.85,2.35&num_of_days=2&tp=3&format=json' 

, die ich zugreifen möchten requestsPython Bibliothek. Wenn ich dies als die URL einfüge, gibt es die erwarteten Daten (requests.get(url)) zurück. Mein Problem tritt auf, wenn versucht wird, eine Verbindung unter Verwendung des params Parameters herzustellen. Mein Ansatz war die folgende:

urlPrefix = 'http://api.worldweatheronline.com/premium/v1/weather.ashx' 
parameters = {'key': key, 'q': {48.85,2.35}, 'num_of_days':2, 'tp': 3, 'format': 'json'} 

print(requests.get(urlPrefix, params=parameters).url) 
>>> http://api.worldweatheronline.com/premium/v1/weather.ashx?key=KEY_VALYE&tp=3&q=48.85&q=2.35&format=json&num_of_days=2 

Wie Sie sehen können, wird die URL aufgrund der Darstellung von {48.85,2.35} variieren. Daher ist meine Frage: Wie sollte q Wert dargestellt werden, um die gleiche URL-Anfrage wie in der ersten Anfrage zu haben?

Antwort

0

Für die q-Darstellung wäre es am besten, das Ganze als String zu gruppieren. d. H. 'q':{'48.85,2.35'}

+0

Ich habe bereits versucht, und es ergibt sich als q = 48,85% 2C2.35 –

+0

@AlvaroGomez Das sollte kein Problem aufwerfen. Die '% 2C'-Einfügung ist wegen [prozentcodierung] (https://en.wikipedia.org/wiki/Percent-encoding) und die API wie WorldWeatherOnline sollte es bereits als ein "," für Sie interpretieren. Funktioniert die eigentliche Anfrage mit dem Vorschlag von Seekheart oder nein? –

+0

Nein, es funktioniert nicht mit dieser Lösung. –