у вас два одинаковых обработчика кнопок, которые обрабатывают одинаковые запросы.
@bot.callback_query_handler(func=lambda call: True)
При нажатии на кнопку идет поиск соответствующего обработчика сверху вниз. натыкается на первый и во второй вообще никогда не заходит.
либо обработку кнопок делать в одном хэндлере
@bot.callback_query_handler(func=lambda call: True)
def choice_course(call):
if call.data == 'usd':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=f"На {date_and_time}\n\nКурс {usd_name}: {usd}")
else:
today = datetime.datetime.now()
date_and_time = (today.strftime('%Y-%m-%d %H:%M:%S'))
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Выберите валюту", reply_markup=kd.choice_cource)
usd = data['Valute']['USD']['Value']
usd_name = data['Valute']['USD']['Name']
Либо в самих хэндлерах описывать правильную функцию
@bot.callback_query_handler(func=lambda call: call.data=='usd')
def course(call):
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=f"На {date_and_time}\n\nКурс {usd_name}: {usd}")
Но в таком случае этот хэндлер нужно поставить выше по коду чем предыдущий.