Вопрос Python + Aiogram. InlineKeyboard
У меня такой вопрос, при создании кнопок инлайн клавиатуры, мы прописываем callback data.Например:
answer_callback = CallbackData('answer', 'answer_name', 'score')
answer1 = InlineKeyboardButton('Ответ А', callback_data=answer_callback.new(answer_name='Ответ А', score='2'))
answer2 = InlineKeyboardButton('Ответ Б', callback_data=answer_callback.new(answer_name='Ответ Б', score='0'))
answer3 = InlineKeyboardButton('Ответ В', callback_data=answer_callback.new(answer_name='Ответ В', score='3'))
answer4 = InlineKeyboardButton('Ответ Г', callback_data=answer_callback.new(answer_name='Ответ Г', score='5'))
menu_p_1 = InlineKeyboardMarkup(row_width=2)
menu_p_1.add(answer1, answer2, answer3, answer4)
Как мне потом в callback_query_handler достать из callback_data какое нибудь значение, например проверять, если 'answer' == 'Ответ А', то допустим доставалось у этой кнопки значение score и куда нибудь сохранялось.Как это сделать?Как доставать данные из callback_data?
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
...
answer_callback = CallbackData('answer', 'answer_name', 'score')
...
@dp.callback_query_handler(answer_callback.filter())
async def answer_callback_handler(query: types.CallbackQuery, callback_data: dict):
answer = callback_data.get("answer_name") # Ответ В
score = int(callback_data.get("score")) # 3
if answer == "Ответ А":
await bot.send_message(chat_id=query.message.chat.id, text="Вы выбрали ответ А!")