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/contentid/41628556657

Printed on: September 1, 2024 at 08:09 o'clock

colinardo
Solution colinardo Aug 09, 2024 updated at 13:58:50 (UTC)
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 Aug 12, 2024 at 11:39:06 (UTC)
Goto Top
Ach je, da hätte ich eigentlich auch selbst drauf können können.

Vielen Dank.

grüße vom it-frosch