как сделать ввод данных в телеграм боте

Мне нужно разбить сообщение от пользователя таким образом

пользователь пишет

1 - слово1

2 - слово2

3 - слово3

и чтобы это все сохранялось в словарь и в json файл. Ключом будет цифра слова, значением само слово. Я пытался сделать это через register_next_step_handler, но так и не смог.


Ответы (1 шт):

Автор решения: oleksandrigo

Ну это не сложно, главное помнить как именно он работает. Вы словно говорите, что следующее, что введет юзер обработай вот в этой функции. Ну и передаете обьект Message, к тому же не важно какой. Возможно он из него берет данные чата, чтобы правильно работать. Хз. Вот код

from telebot import TeleBot, types

import config

bot = TeleBot(config.BOT_TOKEN)


@bot.message_handler(commands=['start'])
def send_welcome(message: types.Message):
    bot.send_message(chat_id=message.chat.id, text='Привет, как твое имя?')
    bot.register_next_step_handler(message, get_name)


def get_name(message: types.Message):
    print(message.text)
    # тут у вас то что ввел юзер
    bot.send_message(chat_id=message.chat.id, text=f'Приятно познакомиться, {message.text}\n'
                                                   f'А сколько тебе лет?')
    bot.register_next_step_handler(message, get_age)


def get_age(message: types.Message):
    bot.send_message(chat_id=message.chat.id, text=f'Вау тебе уже, {message.text} лет\n'
                                                   f'Как настроение?')
    bot.register_next_step_handler(message, get_mood)


def get_mood(message: types.Message):
    bot.send_message(chat_id=message.chat.id, text=f'Отлично!\n')


bot.infinity_polling(skip_pending=True)

Думаю как записывать в словарь, вам говорить не надо?

Пример
введите сюда описание изображения

→ Ссылка