Как мне сделать поиск по ключу в exel файле и отправлять инфу исходя от ключа на aiogram
пишу бота в тг, не выходит сделать поиск ключа(который отправит пользователь), в столбце А и выводить информацию по строке где найден этот ключ и столбцу В и С
вот код
1234
@router.callback_query(F.data == 'ContactEquipment_MagMK')
async def ask_code(callback: CallbackQuery):
await callback.answer()
await callback.message.edit_text('Укажите код')
123456789101112131415
# Загрузка файла 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('Неверный код')
на любое смс выдает смс неверный код
По дате
По рейтингу
Ответ сгенерированный при помощи ChatGPT:
Проблема, вероятно, возникает из-за того, что codes_df.index содержит индексы DataFrame, а не значения столбца A, которые вы пытаетесь найти в сообщении пользователя. Вам нужно изменить эту часть кода, чтобы искать значение кода в столбце A. Вот как это можно сделать:
12345678910111213141516171819
@router.callback_query(F.data == 'ContactEquipment_MagMK')
async def ask_code(callback: CallbackQuery):
await callback.answer()
await callback.message.edit_text('Укажите код')
# Загрузка файла xlsx в DataFrame
global codes_df
codes_df = pd.read_excel('data.xlsx', sheet_name='Лист1')
@router.message()
async def handle_message(message):
global codes_df
code = message.text
await message.reply('Проверяем код...')
if code in codes_df['A'].values:
row = codes_df[codes_df['A'] == code]
await message.reply(f"Данные: {row['B'].values[0]}, {row['C'].values[0]}")
else:
await message.reply('Неверный код')
Этот код будет искать значение code в столбце A DataFrame, а затем выводить данные из столбцов B и C для соответствующей строки.