Не получается вывести итоговую стоимость в телеграм боте

Не получается вывсти итоговую стоимость в telegramm-боте. При выборе категории вписывается стоимость в юанях и идет конвертация в RUB через цб.

Помогите найти ошибку, не супер программист, учусь в тг ботах

import telegram
import requests
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, MessageHandler, Filters, CallbackContext, ConversationHandler
import logging
from telegram import ReplyKeyboardMarkup, Update


TOKEN = 'TOKEN'


def start(update, context):
    keyboard = [
        [InlineKeyboardButton("Обувь/Пуховики", callback_data='section1')],
        [InlineKeyboardButton("Одежда", callback_data='section2')],
        [InlineKeyboardButton("Кроссовки", callback_data='section3')]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    update.message.reply_text('Выберите раздел:', reply_markup=reply_markup)


def button(update, context):
    query = update.callback_query
    query.answer()
    if query.data == 'section1':
        query.edit_message_text(text="Вы выбрали раздел 'Обувь/Пуховики'")
        context.user_data['category'] = "Обувь/Пуховики"
        query.message.reply_text("Укажите цену товара в юанях:")
        return 'get_price'
    elif query.data == 'section2':
        query.edit_message_text(text="Вы выбрали раздел 'Одежда'")
        context.user_data['category'] = "Одежда"
        query.message.reply_text("Укажите цену товара в юанях:")
        return 'get_price'
    elif query.data == 'section3':
        query.edit_message_text(text="Вы выбрали раздел 'Кроссовки'")
        context.user_data['category'] = "Кроссовки"
        query.message.reply_text("Укажите цену товара в юанях:")
        return 'get_price'



def get_price(update, context):
    try:
        context.user_data['price'] = float(update.message.text)
        url = "https://www.cbr-xml-daily.ru/daily_json.js"
        response = requests.get(url)
        data = response.json()
        yuan_rate = data["Valute"]["CNY"]["Value"]
        total = context.user_data['price'] * yuan_rate + 1750
        context.bot.send_message(chat_id=update.message.chat_id, text=f"Общая стоимость {context.user_data['category']}: {total:.2f} руб.")
        print(f"Стоимость товара в юанях: {context.user_data['price']}")
        print(f"Курс юаня к рублю: {yuan_rate}")
        print(f"Общая стоимость {context.user_data['category']}: {total:.2f} руб.")
        return ConversationHandler.END
    except ValueError:
        update.message.reply_text("Пожалуйста, введите число.")



def cancel(update, context):
    update.message.reply_text('Операция отменена')
    return ConversationHandler.END


def main():
    updater = Updater(TOKEN, use_context=True)
    dispatcher = updater.dispatcher
    dispatcher.add_handler(CommandHandler('start', start))
    dispatcher.add_handler(CallbackQueryHandler(button))

    conv_handler = ConversationHandler(
        entry_points=[MessageHandler(Filters.text & ~Filters.command, start)],
        states={
            'get_price': [MessageHandler(Filters.text & ~Filters.command, get_price)]
        },
        fallbacks=[CommandHandler('cancel', cancel)]
    )

    dispatcher.add_handler(conv_handler)
    updater.start_polling()
    updater.idle()


if __name__ == '__main__':
    main()

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