ошибка KeyError

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
Я перебираю два массива, вот один из них (mas1, в котором выдает ошибку):

Код:
[
    {
        "code": 200,
        "data": [
            {
                "key1": "TRT",
                "key2": "1"
            }
        ]
    },
    {
        "code": 200,
        "data": [
            {
                "key1": "AZA",
                "key2": "2"
            }
        ]
    }
]

Не столь важно, как выглядит mas2, тк его перебирает без ошибок.
Функция, которой я перебираю массивы:
Код:
for elem in mas1:
    for elem2 in mas2:
        if elem['data'][0]['key1'] == elem2['x']['y']:
            print('hello_world')

Выдает ошибку:
Код:
    if elem['data'][0]['key1'] == elem2['x']['y']:
KeyError: 'data'
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
927
207
43
20
Москва
Ну например в слове data может быть русская а, скиньте лучше весь код (где заданы оба массива и идёт перебор)
 

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
Ну например в слове data может быть русская а, скиньте лучше весь код (где заданы оба массива и идёт перебор)
mas1
Код:
[
    {
        "code": 200,
        "data": [
            {
                "key1": "TRT",
                "key2": "1"
            }
        ]
    },
    {
        "code": 200,
        "data": [
            {
                "key1": "AZA",
                "key2": "2"
            }
        ]
    }
]

mas2
Код:
[
    {
        "up": 164,
        "data": {
            "key1": "Tds",
            "key2": "1",
        }
    },
    {
        "up": 164,
        "data": {
            "key1": "Grav",
            "key2": "3",

        }
    }
]

Вот функция:
Код:
for elem in mas1:
    for elem2 in mas2:
        if elem['data'][0]['key1'] == elem2['data']['key1']:
            print('hello_world')

Ошибка:
Код:
    if elem['data'][0]['key1'] == elem2['data']['key1']:
KeyError: 'data'
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
927
207
43
20
Москва
Просто скопировал твой код, все выполнилось без ошибок...

Python:
mas1 = [
    {
        "code": 200,
        "data": [
            {
                "key1": "TRT",
                "key2": "1"
            }
        ]
    },
    {
        "code": 200,
        "data": [
            {
                "key1": "AZA",
                "key2": "2"
            }
        ]
    }
]

mas2 = [
    {
        "up": 164,
        "data": {
            "key1": "Tds",
            "key2": "1",
        }
    },
    {
        "up": 164,
        "data": {
            "key1": "Grav",
            "key2": "3",

        }
    }
]

for elem in mas1:
    for elem2 in mas2:
        if elem['data'][0]['key1'] == elem2['data']['key1']:
            print('hello_world')
        else:
            print('no')
 

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