als ich mich heute Mittag über den aktuellen Inzidenzwert informiert habe, bin ich über die API gestolpert die das Rober Koch Institut bereitstellt. Auf der Seite findet man tatsächlich einen Beispielcode, der in Python geschrieben ist. Hier ist der entsprechende Link dazu, der Code befindet sich am Ende der Seite:
https://arcgis.esri.de/nutzung-der-api- ... dashboard/
Ich habe den Code getestet allerdings habe ich so am Laptop keine Verwendung dafür. Ich habe aber noch einen ESP32 und ein 1,7" Display hier und dachte das könnte ich ja mal "kurz" probieren. Naja wie meistens klappt das nicht problemlos und obwohl ich eigentlich andere Projekte noch offen habe, bin ich jetzt neugierig, wie man so etwas macht.
Erst mal der Code, denn ich vom RKI kopiert habe:
Code: Alles auswählen
import requests, json
url = "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/rki_key_data_v/FeatureServer/0/query?"
lk_id = 5566 # ID für den Kreis Steinfurt gemäß AdmUnit Tabelle
parameter = {
'referer':'https://www.mywebapp.com',
'user-agent':'python-requests/2.9.1',
'where': f'AdmUnitId = {lk_id}', # Welche landkreise sollen zurück gegeben werden
'outFields': '*', # Rückgabe aller Felder
'returnGeometry': False, # Keine Geometrien
'f':'json', # Rückgabeformat, hier JSON
'cacheHint': True # Zugriff über CDN anfragen
}
result = requests.get(url=url, params=parameter) #Anfrage absetzen
resultjson = json.loads(result.text) # Das Ergebnis JSON als Python Dictionary laden
print(resultjson['features'][0]['attributes']) # Wir erwarten genau einen Datensatz, Ausgabe aller Attribute
Zum Vergleich Requests-Code:
Code: Alles auswählen
def get(url, params=None, **kwargs):
r"""Sends a GET request.
:param url: URL for the new :class:`Request` object.
:param params: (optional) Dictionary, list of tuples or bytes to send
in the query string for the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""
return request('get', url, params=params, **kwargs)
Code: Alles auswählen
def get(url, **kw):
return request("GET", url, **kw
Ich habe mal das einfachste versucht und die Zeile so abgeändert:
Code: Alles auswählen
result = urequests.get(url=url, **parameter)
Code: Alles auswählen
Traceback (most recent call last):
File "<stdin>", line 26, in <module>
File "urequests.py", line 108, in get
TypeError: unexpected keyword argument 'where'
Könnt ihr mir bitte sagen, wie ich weiters vorgehen muss? Ist das mit MicroPython überhaupt möglich?
Vielen Dank und Grüße
Dennis