@SaddledSharp
Кодер. Увлекаюсь информационной безопасностью.

Почему keyerror?

Всем привет, я пишу бота для ВК на Longpoll и делаю функционал "свадеб" если можно так сказать. Вообщем, если пользователь напишет !поженится с @123123 , то бот считывает строку после @ и заносит в переменную, после - берёт имя пользователя и фамилию того человека после @ и заносит в словарь - mary = {} .
То есть я напишу:
!поженится с @1
Мне выведет:
*** поженился с Павел Дуров
И занесет это в словарь.
Теперь он будет выглядеть так:
mary = {'***': 'Дуров'}
Итак, проблема в команде !развестись. По идее она сделана так:
name = vkapi.users.get(user_ids = event.user_id)
name_and_surname = name[0]['first_name'] + " " + name[0]['last_name']
write_msg(randint, event.user_id, ":o  \n" + name_and_surname + " развёлся с " + mary[name[0]['last_name']])
del mary[name[0]['last_name']]

Подробнее:
1. Я беру имя и фамилию человека который ввёл эту команду
2. Вывожу сообщение о разводе
3. Удаляю элемент из массива по имени человека. ( я потом сделаю проверку есть ли он там вообще )
Но у меня выводит вот такую ошибку:
File "bot.py", line 71, in <module>
    write_msg(randint, event.user_id, ":o  \n" + name_and_surname + " развёлся с " + mary[name[0]['last_name']])
KeyError: 'My_name'

Почему?? Не могу понять, второй день уже мучаюсь.

Добавлено: Хотя кстате когда я ввожу команду !кто женат мне спокойно выводит этот ключ, т.е:
В списке женатых сейчас:
{'My_Name': 'Дуров'}
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@MAGistr_MTM
Учусь программировать
я потом сделаю проверку есть ли он там вообще

Вот из-за этого у вас и KeyError
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы