it-frosch
Goto Top

Wie kann ich auf JSON Elemente zugreifen?

Hallo Kollegen,

ich arbeite mich aktuell in Python ein und hänge an einem Punkt.
Ich möchte unter Python ein JSON auslesen.

Ich habe das JSON geladen
data = json.loads(response.body)
und habe es mir anzeigen lassen, damit ich Struktur sehe.
formated_json = json.dumps(data, indent=2)
print(formated_json)

{
  "from_email": "email_sender",  
  "msg_id": "msg-id",  
  "subject": "subject",  
  "to_email": "email_recipient",  
  "status": "not_delivered",  
  "template_id": "",  
  "asm_group_id": null,  
  "teammate": "",  
  "api_key_id": "key-id",  
  "events": [  
    {
      "event_name": "processed",  
      "processed": "2024-07-10T13:39:30Z"  
    },
    {
      "event_name": "bounce",  
      "processed": "2024-07-10T13:39:31Z",  
      "reason": "550 5.0.0 Recipient unknown",  
      "bounce_type": "bounce",  
      "mx_server": "server_recipient"  
    }
  ],

Auf die Elemente direkt in der root, also "from_email","msg_id" usw.
kann ich per:
data["from_email"]  
data["subject"]  
data["to_email"]  
zugreifen, mit
data["events"]  

bekomme ich:
[{'event_name': 'processed', 'processed': '2024-07-10T13:39:30Z'}, {'event_name': 'bounce', 'processed': '2024-07-10T13:39:31Z', 'reason': '550 5.0.0 Recipient unkn......  
angezeigt.

Wie kann ich auf die Subelemente von "events" zugreifen?

data["events"]["processed"]  
hat nicht funktioniert.

Grüße vom it-frosch

Content-ID: 41628556657

Url: https://administrator.de/forum/wie-kann-ich-auf-json-elemente-zugreifen-41628556657.html

Ausgedruckt am: 22.12.2024 um 01:12 Uhr

colinardo
Lösung colinardo 09.08.2024 aktualisiert um 15:58:50 Uhr
Goto Top
Servus @it-frosch,
die Daten innerhalb der Property "events" sind ein Array (erkennst du an den eckigen Klammern), ergo entweder den entsprechenden Index des gewünschten Array Elements angeben, gefolgt von der Property des Objekts
print(data["events"][0]["processed"])  
oder mittels Schleife alle Arraymember durchlaufen und die Eigenschaft des jeweiligen Objekts ausgeben
for event in data["events"]:   
    print(event["processed"])  
Grüße Uwe
it-frosch
it-frosch 12.08.2024 um 13:39:06 Uhr
Goto Top
Ach je, da hätte ich eigentlich auch selbst drauf können können.

Vielen Dank.

grüße vom it-frosch