Задать вопрос
@Valenco

Как вывести данные из массива в сообщение?

есть такой код:
for product in select_db():
@dp.callback_query_handler(text=product['name_but'])
async def pole(message: types.message):
await bot.send_message(message.from_user.id, product['desk'], reply_markup=but.nav_button)

в select_db() возвращает данные из бд в виде массива, тут @dp.callback_query_handler(text=product['name_but'])
name_but всегда равен значению последнего элемента массива, как сделать так, чтобы он выводил данные корректно
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
for product in select_db():
    @dp.callback_query_handler(text=product['name_but'])
    async def pole(message: types.message):
        await bot.send_message(message.from_user.id, product['desk'], reply_markup=but.nav_button)

Ты делаешь глупость.
Просто потому, что после того, как этот код отработает, созданные тобой копии обработчика pole() останутся, и будут мешать.
Используй один, более общий обработчик callback_query_handler, и в нём уже смотри, какой текст тебе пришёл, какой пользователь его отправил, и что с этим текстом надо делать.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽