Как достать переменные по отдельности с 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")

    # ...
→ Ссылка