Не проходит обработка сообщений у телеграм бота
бот сделан с помощью TeleBot. Не проходит обработка данных массива и бот отправляет только слово "Данные: "
import telebot
a = ['Владимир Голубей 31311131', 'Василий Петрович']
i=()
bot = telebot.TeleBot("1248782796:AAGuSNnqLt00mtBiyWXVKPPmJW7H_L-f4HY")
kb1 = telebot.types.ReplyKeyboardMarkup(True)
kb1.row('привет', 'пока')
@bot.message_handler(commands=['start', 'menu'])
def start_message(message):
bot.send_message(message.chat.id, "Рад вас видеть!", reply_markup=kb1)
@bot.message_handler(func=lambda message: True, content_types=['text'])
def send_text(message):
i = message.text.lower()
bot.send_message(message.chat.id, 'Данные: ', list(filter(lambda x:x.startswith(i),a))))
bot.polling()
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
a = ['Владимир Голубей 31311131', 'Василий Петрович']
i = message.text.lower()
list(filter(lambda x:x.startswith(i),a))
Вы приводите строку, которую ищете, к нижнему регистру. А в тех строках, в которых вы её ищете, первые буквы - заглавные. Естественно, ничего не находится.
Можно поправить, например, так, если вам нужно искать регистро-независимо. Пусть всё будет в нижнем регистре - и то, что ищется, и то, в чём ищем:
list(filter(lambda x:x.lower().startswith(i),a))