@LT_BlackCrow

Ошибка погодного телеграм бота «Город не найден»?

import pyowm
import telebot

owm = pyowm.OWM(xxxxxxxxxxxxxxxxx, {'language': 'ru'})
bot = telebot.TeleBot('xxxxxxxxxxxxxxxxxxxxxx')


@bot.message_handler(content_types=['text'])
def send_echo(message):
    try:
        observation = owm.weather_at_place(message.text)
        w = observation.get_weather()
        temp = w.get_temperature('celsius')['temp']

        answer = f"В городе {message.text} сейчас {w.get_detailed_status()} \n"
        answer += f"Приблизительная температура {round(temp)} градусов\n\n"

        if temp < 0:
            answer += 'Сейчас температура ниже нуля, одевайся теплее!'
        elif temp < 20:
            answer += 'Сейчас прохладно, стоит потеплей одеться!'
        else:
            answer += 'Сейчас достаточно тепло, можно одеться легко!'

        bot.send_message(message.chat.id, answer)
    except:
        bot.send_message(message.chat.id,'Ошибка! Город не найден.')
bot.polling( none_stop = True)
input()


Проблема заключается в том что при написание города высвечивается надпись "Ошибка! Город не найден."
Переписывал код, не сработала, может кто знает в чем ошибка??
  • Вопрос задан
  • 330 просмотров
Пригласить эксперта
Ответы на вопрос 2
@o5a
В новых версиях библиотеки owm нужно использовать manager для работы, и уже через него запрашивать данные
owm = pyowm.OWM(OWM_KEY, {'language': 'ru'})
mgr = owm.weather_manager()
observation = mgr.weather_at_place(location)
Ответ написан
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Есть такое слово "отладка". Знаете?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы