@SashaN69
Школота

Вывод информации телеграм бот?

Доброго времени суток!Пишу телеграм бот на питоне для автоматических продаж, использую библиотеку aiogram.При нажатии команды /start бот отправляет список городов, в таком формате

Города:
Город1
Город2
И тд.

С помощью машины состояний юзер отправляет боту отправляет название города, а в ответ он отправляет весь товар в этом городе.
Проблема:
Нужно как-то сделать чтобы вместо названия города юзер мог отправить цыфру города допустим 1 это город1, 2 это город2 и так далее,а в ответ бот отправлял товар в этом городе.
@dp.message_handler(state=Form.choose_district)
async def process_name(message: types.Message, state: FSMContext):
    """
    Process user name
    """
    async with state.proxy() as data:
        data['choose_district'] = message.text
        try:
            f = open('product.txt', 'w')
            g = open('product.txt', 'r')
            for element in db.check_product(data['choose_district']):
                f.writelines(element)
                f.write('\n')
            f.close()
            for line in g.readlines():
                s = re.split(r'I', line)
                await bot.send_message(message.from_user.id, "Товары - цена:\n"
                                                             "{0} - {1} \n".format(s[0], s[1], bot.get_me()),
                                       reply_markup=inline_kb1)
        except:
            await bot.send_message(message.from_user.id, "Такого района не существует")

    await state.finish()
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Где-то должна быть БД, а в ней таблица с названиями городов. Надо в эту таблицу добавить колонку с номерами городов (уникальными), или создать новую таблицу соответствия города номеру, и по этой колонке номеров находить город по номеру, а потом передавать сам город так же в запрос db.check_product(город), если я правильно понял смысл этого кода.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы