key error

ratata

Новичок
Пользователь
Дек 29, 2021
37
1
8
Пытаюсь обратиться к элементу в словаре, но выдает, что такого ключа нет.
Вот массив mas со словарями:
Python:
[
    {
        "message": "OK",
        "data": {
            "Moscow": [
                {
                    "key1": "2",
                    "key2": "5"
                },
                {
                    "key1": "855",
                    "key2": "16"
                }
            ],
            "NewYork": [
                {
                    "key1": "8",
                    "key2": "3"
                },
                {
                    "key1": "87",
                    "key2": "13"
                }
            ]
        }
    },
    {
        "message": "OK",
        "data": {
            "Moscow": [
                {
                    "key1": "302",
                    "key2": "53"
                },
                {
                    "key1": "84355",
                    "key2": "16421"
                }
            ],
            "NewYork": [
                {
                    "key1": "181",
                    "key2": "3212"
                },
                {
                    "key1": "8721",
                    "key2": "1"
                }
            ]
        }
    }
]

Код:
Код:
for items in mas:
    item = items['data']['Moscow']

Ошибка:
Python:
    item = items['data']['Moscow']
KeyError: 'Moscow'
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Скопировал твой код, все работает
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
Вы понимаете, что не всё что видите может быть так, пример
о и o одинаковые буквы? (нет)
я про то, что видимо нужно загуглить и изучить тему, зачем у Вас так смешано, массив-словарь, оправданно?
словарями пользуюсь редко, всё что есть по теме:
Код:
# Урок 13. Словари от Михаила Русакова
# dict = {} создание пустого словаря с помощью фигурных скобок {}
# dict - дект, сокращение от слова dictionary, что в переводе 'словарь'
dictсловарь = {}
print(dictсловарь)  # => {}
# каждый элемент словаря состоит из термина (ключ) и его определения (значение)
# ключи должны быть уникальными для данного словаря — никаких повторений
# ключи в словаре не имеют такого явного порядка расположения, который есть у элементов списка
# чтобы создать словарь, используйте фигурные скобки, внутри которых запишите пары ключ: значение через запятую
dictсловарь = {
    'first_name': 'Robinson',
    'last_name': 'Crusoe',
    'username': 'Friday1719'
}

dictсловарь = {'first_name': 'Robin', 'last_name': 'Crus'}
print(dictсловарь)  # => {'first_name': 'Robin', 'last_name': 'Crus'}
dictсловарь2 = {'first_name2': 'Robin2', 'last_name2': 'Crus2'}
print(dictсловарь2)  # => {'first_name2': 'Robin2', 'last_name2': 'Crus2'}
dictсловарь.update(dictсловарь2)  # сложить два словаря
print(dictсловарь)  # => {'first_name': 'Robin', 'last_name': 'Crus', 'first_name2': 'Robin2', 'last_name2': 'Crus2'}
print(dictсловарь2)  # => {'first_name2': 'Robin2', 'last_name2': 'Crus2'}

dictсловарь = {'first_name': 'Robinson', 'last_name': 'Crusoe', 'username': 'Friday1719'}
print(dictсловарь)  # => {'first_name': 'Robinson', 'last_name': 'Crusoe', 'username': 'Friday1719'}
print(dictсловарь['username'])  # => Friday1719
# print(dictсловарь['middle_initial']) # получим ошибку KeyError: 'middle_initial', так как ключ 'middle_initial' отсутствует в словаре
# запрос на наличие ключа 'first_name' в словаре
if 'first_name' in dictсловарь:    print(dictсловарь['first_name'])  # => 'Robinson' - это 'first_name'
print(dictсловарь.get('last_name'))  # использование метода get() => Crusoe
print(dictсловарь.get(
    'last_name2'))  # использование метода get() => None, так как ключ 'last_name2' отсутствует в словаре
# перебор словаря
for key in dictсловарь:
    print(key, '=', dictсловарь[key])
 
  • Мне нравится
Реакции: ratata

ratata

Новичок
Пользователь
Дек 29, 2021
37
1
8
Скопировал твой код, все работает
Нашел ошибку. Массив был большим, и примерно в середине массива появилась ошибка, где не было элемента 'Moscow'
 

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