Seite 1 von 1

dictionarys innerhalb einer Liste

Verfasst: Freitag 5. März 2021, 21:54
von Achromatic
Ich habe das Problem, dass ich als Ausgabe einer Datenanfrage eines APIs eine Liste bekommen habe die mehrere dictionarys beinhaltelt. Für mich relevant ist allerdings nur ein Value je dictionary.
Gibt es einen einfachen weg diese zu bekommen?

Code: Alles auswählen

[{'id': '1', 'name': 'A', 'url': 'g'},
{'id': '2', 'name': 'B', 'url': 'g'},
{'id': '3', 'name': 'C', 'url': 'g'},
{'id': '4', 'name': 'D', 'url': 'g'},
{'id': '5', 'name': 'E', 'url': 'g'},
{'id': '6', 'name': 'F', 'url': 'g'}]
Ich will also quasi als Ergebnis eine Liste mit A, B, C, D, E, F

Re: dictionarys innerhalb einer Liste

Verfasst: Samstag 6. März 2021, 08:19
von sparrow
Mit einer list comprehension.

Code: Alles auswählen

values = [d["name"] for d in response]

Re: dictionarys innerhalb einer Liste

Verfasst: Samstag 6. März 2021, 10:13
von __blackjack__
Hier mit Kanonen auf Spatzen geschossen, aber ich bringe die Kanone trotzdem mal ins Spiel:

Code: Alles auswählen

In [2]: data                                                                    
Out[2]: 
[{'id': '1', 'name': 'A', 'url': 'g'},
 {'id': '2', 'name': 'B', 'url': 'g'},
 {'id': '3', 'name': 'C', 'url': 'g'},
 {'id': '4', 'name': 'D', 'url': 'g'},
 {'id': '5', 'name': 'E', 'url': 'g'},
 {'id': '6', 'name': 'F', 'url': 'g'}]

In [3]: import glom as g                                                        

In [4]: g.glom(data, ["name"])                                                  
Out[4]: ['A', 'B', 'C', 'D', 'E', 'F']

Re: dictionarys innerhalb einer Liste

Verfasst: Dienstag 9. März 2021, 08:31
von DeaD_EyE
Mit der Standardbiliothek:

Code: Alles auswählen

from operator import itemgetter


data = [{'id': '1', 'name': 'A', 'url': 'g'},
{'id': '2', 'name': 'B', 'url': 'g'},
{'id': '3', 'name': 'C', 'url': 'g'},
{'id': '4', 'name': 'D', 'url': 'g'},
{'id': '5', 'name': 'E', 'url': 'g'},
{'id': '6', 'name': 'F', 'url': 'g'}]

data2 = list(map(itemgetter("name"), data))

Re: dictionarys innerhalb einer Liste

Verfasst: Dienstag 9. März 2021, 21:31
von Maxi.py
Hallo, das ist eigentlich ganz einfach, man muss nur ein bisschen nachdenken:

Code: Alles auswählen

api = [
    {'id': '1', 'name': 'A', 'url': 'g'},
    {'id': '2', 'name': 'B', 'url': 'g'},
    {'id': '3', 'name': 'C', 'url': 'g'},
    {'id': '4', 'name': 'D', 'url': 'g'},
    {'id': '5', 'name': 'E', 'url': 'g'},
    {'id': '6', 'name': 'F', 'url': 'g'}
]

names = [name.get("name") for name in api]