Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
torsten_156
User
Beiträge: 43 Registriert: Freitag 5. April 2019, 20:10
Donnerstag 18. Februar 2021, 14:42
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
Sirius3
User
Beiträge: 18274 Registriert: Sonntag 21. Oktober 2012, 17:20
Donnerstag 18. Februar 2021, 15:09
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.
torsten_156
User
Beiträge: 43 Registriert: Freitag 5. April 2019, 20:10
Donnerstag 18. Februar 2021, 15:17
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?
torsten_156
User
Beiträge: 43 Registriert: Freitag 5. April 2019, 20:10
Donnerstag 18. Februar 2021, 17:16
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
Sirius3
User
Beiträge: 18274 Registriert: Sonntag 21. Oktober 2012, 17:20
Donnerstag 18. Februar 2021, 17:29
Ich kann auch nochmal zum dritten mal das selbe schreiben: Du mußt den String aus content["E_JSON"] nochmal json-Dekodieren.