Как мне сделать поиск по ключу в exel файле и отправлять инфу исходя от ключа на aiogram?
пишу бота в тг, не выходит сделать поиск ключа(который отправит пользователь), в столбце А и выводить информацию по строке где найден этот ключ и столбцу В и С
вот код
@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это str, (судя по code = message.text ), а индекс может быть, например, int64.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для выполнения поиска по ключу в файле 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
После того, как мы нашли данные по ключу, мы можем использовать библиотеку 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)
Не забудьте заменить 'file.xlsx' на путь к вашему файлу Excel, 'значение_ключа' на значение ключа для поиска, 'ваш_токен' на токен вашего бота в Telegram и 'ваш_chat_id' на ID вашего чата в Telegram.
Теперь, запустив этот код, вы сможете выполнить поиск по ключу в Excel файле и отправить найденные данные через aiogram.