Seite 1 von 1
JSON - auf einzelne Felder zugreifen
Verfasst: Donnerstag 18. Februar 2021, 14:42
von torsten_156
Hallo,
ich lese mit "json.loads(myContent)" einen Datenstrom ein. Dieser besteht aus mehreren Feldern.
Ein Beispiel:
Code: Alles auswählen
{\\"werk\\":\\"X\\",\\"bldat\\":\\"X\\",\\"obart\\":\\"X\\",\\"objid\\":\\"X\\"}
Ich kann mir diesen gesamten Inhalt jetzt anzeigen lassen:
Jetzt möchte ich allerdings nur den Wert für "werk" erhalten. In diesem Beispiel ist es ja "X". Wie mache ich das am besten?
Vielen Dank
Torsten
Re: JSON - auf einzelne Felder zugreifen
Verfasst: Donnerstag 18. Februar 2021, 15:09
von Sirius3
Lass erstmal diese unnötigen my-Präfixe weg; solange es nicht auch ein herContent gibt.
Wenn ich das richtig sehe, dann ist in E_JSON ein als String gespeichertes JSON enthalten. Dann mußt Du nur json.loads darauf anwenden.
Re: JSON - auf einzelne Felder zugreifen
Verfasst: Donnerstag 18. Februar 2021, 15:17
von torsten_156
Das siehst du richtig. Habe bereits ein json.loads angewendet:
Code: Alles auswählen
if response.status_code == 200:
content = response.content
J_Data = json.loads(content)
print(J_Data["E_JSON"])
Somit wird ja der JSON-Stream in mein "J_Data" geschoben. Aber wie erhalte ich jetzt den Zugriff auf einen einzelnen Schlüssel?
Re: JSON - auf einzelne Felder zugreifen
Verfasst: Donnerstag 18. Februar 2021, 15:51
von Sirius3
Wenn Du eine requests-Antwort hast, dann benutze direkt json.
und dann hast Du in Deinen Daten nochmal json:
Re: JSON - auf einzelne Felder zugreifen
Verfasst: Donnerstag 18. Februar 2021, 17:16
von torsten_156
Ok, habe es dann so geändert:
Code: Alles auswählen
if response.status_code == 200:
content = response.json()
print(content)
Ok, in content steht nun der JSON-Stream. Aber die Frage bleibt noch immer, wie kann ich euf genau ein Feld des Streams zugreifen?
VG
Torsten
Re: JSON - auf einzelne Felder zugreifen
Verfasst: Donnerstag 18. Februar 2021, 17:29
von Sirius3
Ich kann auch nochmal zum dritten mal das selbe schreiben: Du mußt den String aus content["E_JSON"] nochmal json-Dekodieren.
Re: JSON - auf einzelne Felder zugreifen
Verfasst: Donnerstag 18. Februar 2021, 18:08
von torsten_156
Es läuft:
Code: Alles auswählen
if response.status_code == 200:
content = response.json()
data = json.loads(content["E_JSON"])
for val in data:
print(val['werks'])
VIELEN Dank und Grüße
Torsten