Задать вопрос
@expp

Телеграм бот на TelegramBotApi. Как решить эту ошибку?

Добрый день. Писал бота на Python для Telegram и столкнулся с такой ошибкой:
raise api_response_error.NotFoundError('Unable to find the resource')
pyowm.exceptions.api_response_error.NotFoundError: The searched item was not found.
Reason: Unable to find the resource.

...
elif message.text == " Температура":
			bot.send_message(message.chat.id, "Введите город: ")
			def weather():
				owm = pyowm.OWM('...')
				city = message.text
				observation = owm.weather_at_place( city )
				w = observation.get_weather()
			weather()
			bot.send_message(message.chat.id, f"Температура в {city} сейчас: {temperature}")
...

Как я успел понять, суть этой ошибки заключается в том, что введен неправильный город, но это очень странно, ведь переменная city берет значение из введенного сообщения, а оно вводится сразу же перед этой функцией. Конечно, я писал адекватные значения, и проблема заключается не в том, что я ввожу придуманное мной глупое название города.
Спасибо.
  • Вопрос задан
  • 384 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Ваш кусок кода не очень информативен.
После строки 'city = message.text' добавьте 'print(city)' и в консоли посмотрите вывод.
Вот самый простой код, сверьте со своим:
import telebot
import pyowm

owm = pyowm.OWM('')
bot = telebot.TeleBot('')

def getWeather(city):
    observation = owm.weather_at_place(city)
    w = observation.get_weather()
    temp = w.get_temperature('celsius')["temp"]
    
    return temp

@bot.message_handler(content_types=['text'])
def repeat_all_message(message):
	try:
		temp = getWeather(message.text)
		bot.send_message(message.chat.id,f'Температура в {message.text} - {temp}')
		
	except pyowm.exceptions.api_response_error.NotFoundError:
		bot.send_message(message.chat.id,'Ошибка! Город не найден!')

if __name__ == '__main__':
    bot.polling(none_stop=True)

И желательно выносить код в отдельные функции, проще будет при отладке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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