@KasFam

Как разобрать запрос на несколько переменных в боте телеграм?

Суть вопроса: Юзер присылает несколько слов в телеграм бот. Необходимо разобрать этот запрос на несколько переменных, составить из них sql запрос и вернуть результат юзеру.
Нигде не могу найти информации. Дайте пожалуйста совет как реализовать подобное.
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Пример запроса? Он должен следовать какой-то специфической форме, я надеюсь?
Если запрос просто состоит из некольких слов, разделённых пробелами (опционально, строка в кавычках считается одним словом), то посмотри в сторону shlex. Но кроме как "разбить строку по пробелами и экранировать кавычки" shlex мало что умеет.
Если нужно подобие командной строки (с фишками типа --ключей и необязательных параметров), посмотри в сторону argparse. Тут тебе и преобразование типов данных (т.е. "вот этот параметр должен быть числом"), и справка об использовании, и ещё много чего.
Если что-то ещё более заковыристое, то посмотри в сторону регулярных выражений. Они позволяют распознавать довольно заковыристые паттерны, но многое придётся делать вручную.
Если нужен анализ естественной речи... это дело муторное.

Так что я бы сначала посмотрел argparse. Оно заточено на аргументы командной строки, но чат-боты недалеко от неё ушли.
Ответ написан
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Можно применить метод split()
Например:
responce = '#word1 #word2 #word3'
words = [word.strip() for word in responce.split('#') if word]
print(words)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы