JSON auslesen mit Array als Beginn
Verfasst: Freitag 18. Dezember 2020, 11:09
Hey liebe Programmierfreunde,
ich beschäftige mich seit einiger Zeit mit REST-Abfragen und habe normalerweise kein Problem mit dem Auslesen von JSON-Dateien. Bisher haben allerdings alle JSON-Dateien mit einer geschweiften Klammer, also einem Objekt begonnen. In meiner aktuellen Datei ist dies leider nicht der Fall, sondern eine eckige Klammer steht zu Beginn der Datei, also ein Array.
Mein Ziel ist es auf den Wert "card" zuzugreifen, der relativ tief in der Struktur steckt.
Hier der relevante Teil des JSON-Codes:
Ohne das Array zu Beginn würde ich die Anfrage wie folgt gestalten:
Jetzt habe ich schon unzählige Forenbeiträge durchsucht, aber finde immer nur Lösungen für Arrays innerhalb der Verschachtelung und leider keine Hinweise wie man vorgehen muss, wenn zu Beginn ein Array steht.
In meiner Verzweiflung habe ich schon haufenweise Versuche gestartet, die allerdings immer kläglich gescheitert sind.
Hier sind beispielsweise zwei meiner bisherigen Versuche:
Momentan weiß ich mir leider nicht mehr zu helfen und wäre daher SEHR dankbar um Hinweise wie ich das Problem angehen könnte!
Vielen lieben Dank für Vorschläge und schon mal euch allen eine angenehme Weihnachtszeit!
Liebe Grüße Dominik
ich beschäftige mich seit einiger Zeit mit REST-Abfragen und habe normalerweise kein Problem mit dem Auslesen von JSON-Dateien. Bisher haben allerdings alle JSON-Dateien mit einer geschweiften Klammer, also einem Objekt begonnen. In meiner aktuellen Datei ist dies leider nicht der Fall, sondern eine eckige Klammer steht zu Beginn der Datei, also ein Array.
Mein Ziel ist es auf den Wert "card" zuzugreifen, der relativ tief in der Struktur steckt.
Hier der relevante Teil des JSON-Codes:
Code: Alles auswählen
[
{
"badges": {
"attachments": 0,
"attachmentsByType": {
"trello": {
"board": 0,
"card": 0
}
},
Code: Alles auswählen
import requests, json
apiurl = 'https://api.trello.com/1/lists/5fad34db2a62a383a0a1efbd/cards?'
apikey = '21b3a03f56********'
token = '2e307ebd88*********'
payload = {'key': apikey, 'token': token}
my_response = requests.get(apiurl, params=payload)
j_data = json.loads(my_response.text)
for item in j_data['badges']['attachmentsByType']['trello']:
card = item['card']
print(card)
In meiner Verzweiflung habe ich schon haufenweise Versuche gestartet, die allerdings immer kläglich gescheitert sind.
Hier sind beispielsweise zwei meiner bisherigen Versuche:
Code: Alles auswählen
card = [w['card'] for w in [0]['badges']['attachmentsByType']['trello']]
Code: Alles auswählen
print([item['badges']['attachmentsByType']['trello']['card'] for item in data['']])
Vielen lieben Dank für Vorschläge und schon mal euch allen eine angenehme Weihnachtszeit!

Liebe Grüße Dominik