Finanzrudel Community Forum

Frage zu Python

Liebes Rudel,

ich versuche auf eine Wetter-Seite zuzugreifen.
Leider gibt es die Anleitung nur für Python, und ich nutze eine völlig andere Programmiersprache.
Ich habe schon viele Stunden gegoogelt, und irgendwas klappt nicht.

Und zwar steht dort in der Beschreibung ein Python-Code.
Es wird eine URL aufgerufen mit requests.get, es werden zahlreiche Parameter angehängt.

Jetzt die Frage:

Welche URL entsteht, wenn man das ausführt in Python?
Ich bräuchte wirklich die vollständige URL, die man erhält, vor allem muss ich sehen können, wie die Parameter angehängt werden.

Der Code ist so:

import requests
import json

endpoint_url = „https://api.weatherlabs.io/weather/v1/get_nwp
headers = {„Authorization“: your_api_key}
params = {
‚model‘: ‚DWD_ICON-D2‘,
‚start_date‘: ‚2019-08-15 00‘,
‚end_date‘: ‚2019-08-20 00‘,
‚coords‘: {‚latitude‘: [60], ‚longitude‘: [17], ‚height‘: [59,60]},
‚variables‘: [‚T‘, ‚CLCT‘]
}
response = requests.get(endpoint_url, headers=headers, params={‚query_params‘: json.dumps(params)})

Ich selber habe kein Python um es auszuprobieren, und im Web probierte ich alles mögliche aus, ich kam nicht weiter.

Also die Adresse müsste dann so aussehen…

https://api.weatherlabs.io/weather/v1/get_nwp?query_params=und+was+hier+steht

Ich wäre wirklich sehr froh um Hilfe.
Ich habe es wirklich auf dutzende arten versucht und komme nicht weiter.

Zuletzt versuchte ich es mit
https://api.weatherlabs.io/weather/v1/get_latest_nwp?query_params={‚query_params‘: ‚{„model“:„DWD_ICON-D2“,„start_date“:„2020-12-26 20“,„end_date“:„2020-12-26 22“,„coords“:{„latitude“:[60],„longitude“:[17],„height“:[59, 60]},„variables“:[„T“,„CLCT“]}‘}

was aber offenbar auch falsch ist.
Also die Parameter sind ungültig bzw. die Adresse ist so ungültig.
Auch mit EscapeString-Zeugs kam ich nicht weiter, da sieht es dann so aus:

https://api.weatherlabs.io/weather/v1/get_latest_nwp?query_params={‚query_params‘:%20’{„model“:„DWD_ICON-D2“,„start_date“:„2020-12-26%2020“,„end_date“:„2020-12-26%2022“,„coords“:{„latitude“:[60],„longitude“:[17],„height“:[59,%2060]},„variables“:[„T“,„CLCT“]}’}

Hat mir jemand einen Tipp?

Besten Dank schon mal.

Hallo Zen Investor,

Also ich kann zwar kein Python, aber das sollte hier eigentlich egal sein.

Ich habe kurz hier geschaut: https://api.weatherlabs.io/weather/docs/v1/#general-usage

Dort steht, dass alle Weather API Calls via GET oder POST gesendet werden können.

Bei GET hängt man die Parameter an den Endpoint an, mit einem ? nach dem Endpoint and dann & zwischen den einzelnen Parametern, also z.B. so:
https://api.weatherlabs.io/weather/v1/get_nwp?model=DWD_ICON-D2&start_date=2019-08-15%2000&end_date=2019-08-20%2000

usw. Hier ist zu beachten, dass die Werte URL encoded werden müssen, aus einem Leerzeichen wir dann z.B. „%20“. Wie es beim coords Parameter weiter geht, müsstest du ausprobieren, das geht aus der Doku nicht klar hervor.

Besser wäre es aber auf jeden Fall, nicht GET zu verwenden, sondern einen POST Request. Dort kannst du im Body den Parameterblock im JSON Format mitschicken, was in etwa so aussieht wie in den Beispielen.

Welche Programmiersprache verwendest du denn?

Wenn du nicht weiter kommst: ich denke das hier ist nicht das am besten geeignete Forum für solche Fragen. Versuch es sonst doch mal auf stackoverflow.com - dort findet man meist recht gute Hilfe, wenn es um Entwicklungsthemen geht.