Как достать переменные по отдельности с callback_data в aiogram
Суть такова, что мне надо достать Первое значение, Второе и Третье, и достать мне их по отдельности.
sell_callback = CallbackData("Sell", "item_name", "item_id")
up_callback = CallbackData("Up", "item_name", "item_id")
Вот три переменные которые приходят в callback_data.
На выходе я получаю Up:item_name:item_id, и Sell:item_name:item_id
Пример как надо мне: Up, item_name, item_id или Sell, item_name, item_id
Если нужна дополнительная информация по данному вопросу, задавайте, я дам всю не обхадимую информацию.
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Если у Вас есть обработчик для этих команд, то значения хранятся в словаре и их можно легко оттуда достать:
sell_callback = CallbackData("Sell", "item_name", "item_id")
up_callback = CallbackData("Up", "item_name", "item_id")
@dp.callback_query_handler(sell_callback.filter())
async def sell_callback_handler(query: CallbackQuery, callback_data: dict):
item_name = callback_data.get("item_name")
item_id = callback_data.get("item_id")
# ...
@dp.callback_query_handler(up_callback.filter())
async def up_callback_handler(query: CallbackQuery, callback_data: dict):
item_name = callback_data.get("item_name")
item_id = callback_data.get("item_id")
# ...
Вы также можете установить обработчик на обработку конкретного значения из фабрики:
@dp.callback_query_handler(up_callback.filter(item_name="Ананасы"))
async def up_callback_handler(query: CallbackQuery, callback_data: dict):
item_name = callback_data.get("item_name") # Ананасы
item_id = callback_data.get("item_id")
# ...