Взять все значения ключей из массива

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
Есть массив mas , из которого нужно достать все значения определенного ключа (для наглядности сделал json)
Код:
[
    {
        "c": "1",
        "d": {
            "k": 1641376438005,
            "x": [
                {
                    "key1": "RRR",
                    "key2": "1"
                },
                {
                    "key1": "LAK",
                    "key2": "2"
                },
                {
                    "key1": "RAM",
                    "key2": "3"
                }
            ]
        }
    }
]

Я сделал такой код, но он достает только первый элемент RRR:
Код:
for z in mas:
    element = z['d']['x'][0]['key1']
    print(element)

Желаемый вывод в терминал: RRR, LAK, RAM
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Желаемый вывод в терминал: RRR, LAK, RAM
Вот пример:
Python:
mas = [
    {
        "c": "1",
        "d": {
            "k": 1641376438005,
            "x": [
                {
                    "key1": "RRR",
                    "key2": "1"
                },
                {
                    "key1": "LAK",
                    "key2": "2"
                },
                {
                    "key1": "RAM",
                    "key2": "3"
                }
            ]
        }
    }
]


def get_elems(x, key):
    if isinstance(x, list):
        for i in x:
            get_elems(i, key)
    elif isinstance(x, dict):
        if x.get(key):
            print(x.get(key))
        for k, v in x.items():
            if isinstance(v, (dict, list)):
                get_elems(v, key)


get_elems(mas, 'key1') # RRR LAK RAM
 
Последнее редактирование:
  • Мне нравится
Реакции: zaivanza

Форум IT Специалистов