@TKDBOT
Учу python. Готов к конструктивной критике.

Как передать результат функции в следующий шаг в телеграм боте?

Помогите передать значение res[0] на следующий шаг step_2? В моем коде передается первоначальный запрос пользователя, а не результат.

​@​bot​.​message_handler​(​commands​=​[​'start'​]) 
 ​def​ ​handle_text​ (​message​): 
 ​    ​bot​.​send_message​(​message​.​chat​.​id​, ​"Введите данные"​) 
 ​    ​@​bot​.​message_handler​(​content_types​=​[​'text'​]) 
 ​    ​def​ ​handle_text​(​message​): 
 ​        ​db​ ​=​ ​sqlite3​.​connect​(​'db.sqlite'​) 
 ​        ​cursor​ ​=​ ​db​.​cursor​() 
 ​        ​current_dt​ ​=​ ​datetime​.​now​().​strftime​(​"%y.%m.%d %H:%M:%S"​) 
 ​        ​txt​ ​=​ ​message​.​text 
 ​        ​zap​ ​=​ ​txt​.​rsplit​(​' '​, ​1​) 
 ​        ​street​ ​=​ ​zap​[​0​] 
 ​        ​house​ ​=​ ​zap​[​1​] 
 ​        ​street_str​ ​=​ ​street​.​lower​() 
 ​        ​cursor​.​execute​(​"SELECT * FROM tkd WHERE street_str LIKE '%' || ? || '%' AND  house = ?"​, (​street_str​, ​house​)) 
 ​        ​res​ ​=​ ​cursor​.​fetchone​() 
 ​        ​if​ ​res​: 
 ​            ​  ​res​[​0]
 ​        ​else​: 
 ​            ​bot​.​send_message​(​message​.​chat​.​id​, ​'Проверьте адрес'​)
bot.register_next_step_handler(message, step_2)
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
if​ ​bool(res​):
    step_2 = ​res​[​0]
else​:
    ​bot​.​send_message​(​message​.​chat​.​id​, ​'Проверьте адрес'​)
bot.register_next_step_handler(message, step_2)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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