Как мне сделать поиск по ключу в exel файле и отправлять инфу исходя от ключа на aiogram?

Ссылка скопирована
1 ответ

пишу бота в тг, не выходит сделать поиск ключа(который отправит пользователь), в столбце А и выводить информацию по строке где найден этот ключ и столбцу В и С
вот код

@router.callback_query(F.data == 'ContactEquipment_MagMK') async def ask_code(callback: CallbackQuery):   await callback.answer()   await callback.message.edit_text('Укажите код ТТ чикаго, он указан в приложении мобильная торговля')  # Загрузка файла xlsx в DataFrame  codes_df = pd.read_excel('data.xlsx', sheet_name='Лист1', index_col=0, header=0, names=['A', 'B', 'C'])     @router.message()     async def handle_message(message):       code = message.text       await message.reply('Проверяем код...')       print (code)     print (codes_df.index)     if code in codes_df.index:           row = codes_df.loc[code]           print (row)         await message.reply(f"Данные: {row['B']}, {row['C']}")       else:           await message.reply('Неверный код')

@router.callback_query(F.data == 'ContactEquipment_MagMK') async def ask_code(callback: CallbackQuery): await callback.answer() await callback.message.edit_text('Укажите код ТТ чикаго, он указан в приложении мобильная торговля') # Загрузка файла xlsx в DataFrame codes_df = pd.read_excel('data.xlsx', sheet_name='Лист1', index_col=0, header=0, names=['A', 'B', 'C']) @router.message() async def handle_message(message): code = message.text await message.reply('Проверяем код...') print (code) print (codes_df.index) if code in codes_df.index: row = codes_df.loc[code] print (row) await message.reply(f"Данные: {row['B']}, {row['C']}") else: await message.reply('Неверный код')

на любое смс выдает смс неверный код

Дополнительно:

Пробовал указывать заведомо верный code прямо в коде?

  • А совпадают ли типы в codeи в codes_df.index?
    Вероятно, codeэто str, (судя по code = message.text ), а индекс может быть, например, int64.
  • Valentin Barbolin, да
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Для выполнения поиска по ключу в файле Excel и отправки информации на aiogram, вам потребуется использовать библиотеки для работы с Excel и для работы с Telegram API.

    Для начала, давайте рассмотрим, как выполнить поиск по ключу в файле Excel с помощью языка программирования Python. Для этого нам понадобится библиотека openpyxl, которая позволяет работать с файлами Excel. Вот пример кода на Python для выполнения поиска по ключу в Excel:

    import openpyxl
     
    # Открываем файл Excel
    wb = openpyxl.load_workbook('file.xlsx')
    sheet = wb.active
     
    # Задаем ключ для поиска
    key = 'значение_ключа'
     
    # Ищем значение по ключу
    for row in sheet.iter_rows(values_only=True):
        if row[0] == key:
            data_to_send = row[1]  # Данные для отправки на aiogram

    import openpyxl # Открываем файл Excel wb = openpyxl.load_workbook('file.xlsx') sheet = wb.active # Задаем ключ для поиска key = 'значение_ключа' # Ищем значение по ключу for row in sheet.iter_rows(values_only=True): if row[0] == key: data_to_send = row[1] # Данные для отправки на aiogram

    После того, как мы нашли данные по ключу, мы можем использовать библиотеку aiogram для отправки информации через Telegram API. Для этого вам понадобится создать бота в Telegram и получить токен доступа. Вот пример кода на Python для отправки сообщения через aiogram:

    from aiogram import Bot, Dispatcher, types
    from aiogram.contrib.middlewares.logging import LoggingMiddleware
    from aiogram.utils import executor
     
    # Токен бота
    TOKEN = 'ваш_токен'
     
    # Инициализация бота и диспетчера
    bot = Bot(token=TOKEN)
    dp = Dispatcher(bot)
    dp.middleware.setup(LoggingMiddleware())
     
    # Отправка сообщения
    async def send_data(data_to_send):
        await bot.send_message(chat_id='ваш_chat_id', text=data_to_send)
     
    if __name__ == '__main__':
        executor.start_polling(dp, skip_updates=True)

    from aiogram import Bot, Dispatcher, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.utils import executor # Токен бота TOKEN = 'ваш_токен' # Инициализация бота и диспетчера bot = Bot(token=TOKEN) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware()) # Отправка сообщения async def send_data(data_to_send): await bot.send_message(chat_id='ваш_chat_id', text=data_to_send) if __name__ == '__main__': executor.start_polling(dp, skip_updates=True)

    Не забудьте заменить 'file.xlsx' на путь к вашему файлу Excel, 'значение_ключа' на значение ключа для поиска, 'ваш_токен' на токен вашего бота в Telegram и 'ваш_chat_id' на ID вашего чата в Telegram.

    Теперь, запустив этот код, вы сможете выполнить поиск по ключу в Excel файле и отправить найденные данные через aiogram.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно