Seite 1 von 1

Dictionary einer JSON Abfrage verstehen

Verfasst: Sonntag 22. November 2020, 15:23
von Nic0205
Hallo zusammen,

ich bin noch ganz neu in der Python Welt. Zum lernen möchte ich mir gerne den aktuellen Covid19 Stand des RKI via JSON abrufen, in einem Dictionary speichern und dann über einzelne Spalten iterieren und zB. summieren.

Ich versehe die Dictionary in PYTHON leider noch nicht so ganz.

Ich habe folgenden Code:

Code: Alles auswählen

import urllib, json, ijson


url = "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_COVID19/FeatureServer/0/query?where=IdLandkreis%20%3D%20'01062'&outFields=AnzahlFall,IdLandkreis,Datenstand&outSR=4326&f=json"
response = urllib.request.urlopen(url)
data1 = json.loads(response.read())
Das erzeugt dann das dictionary data1.

Es gibt darin 5 Felder / Keys "features, fields, globalIDFieldName, objectIDFieldName, uniqueIDField).

für die fields gibt es dann die Attribute an die ran möchte (AnzahlFall, IDLandkreis, Datenstand).

Ich schaffe es aber nicht, auf diese Attribute zuzugreifen und z.B. die Anzahl der Fälle aufzusummieren.
Ich verstehe hier das dictionary nicht so richtig. Wenn der Key "fields" ist - wie kann ich dann dann auf den value zugreifen, der ja anscheinend wieder ein dictionary ist?

Ich hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen.

Viele Grüße

Re: Dictionary einer JSON Abfrage verstehen

Verfasst: Sonntag 22. November 2020, 15:51
von Sirius3
Du mußt Dich halt Schritt für Schritt an die gewünschten Daten heranarbeiten. Was soll die 1 bei data1?

Code: Alles auswählen

features = data['features']
for feature in features:
    print(feature['attributes']['AnzahlFall'])

Re: Dictionary einer JSON Abfrage verstehen

Verfasst: Sonntag 22. November 2020, 16:38
von __deets__
So sieht das fuer mich aus:

Code: Alles auswählen

{'features': [{'attributes': {'AnzahlFall': 1,
                              'Datenstand': '22.11.2020, 00:00 Uhr',
                              'IdLandkreis': '01062'}},
....
Mit

Code: Alles auswählen

import urllib.request
import json


url = "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_COVID19/FeatureServer/0/query?where=IdLandkreis%20%3D%20'01062'&outFields=AnzahlFall,IdLandkreis,Datenstand&outSR=4326&f=json"
response = urllib.request.urlopen(url)
data = json.loads(response.read())

anzahl_total = sum(feature["attributes"]["AnzahlFall"] for feature in data["features"])
print(anzahl_total)
bekomme ich also die Summe aller Faelle.

Re: Dictionary einer JSON Abfrage verstehen

Verfasst: Sonntag 22. November 2020, 20:34
von Nic0205
Vielen lieben Dank ihr zwei! Das funktioniert prima.

Habt Ihr noch einen Tip für mich, wo ich nachlesen kann, was da genau passiert? Ich steh da irgendwie noch auf dem Schlauch... Anfänger eben ;-)