Python: Ошибка при запросе данных о погоде 'OWM' object has no attribute 'coindex_around_coords'

Начал изучать программирование, язык: Python. Учусь и пытаюсь создать телеграмм бота, который бы возвращал данные о погоде в указанном пользователем городе. Использую библиотеку PyOWM v3 для определения погоды.

В целом телеграмм бот работает и возвращает основные данные, но с некоторыми данными например, уровень углекислого газа CO index запрос написать не выходит, при запуске кода ошибка: OWM' object has no attribute 'coindex_around_coords'

Воспроизвел здесь часть кода для разбора проблемы.

from geopy.geocoders import Nominatim
from pyowm import OWM
from pyowm.utils.config import get_default_config


city = input("готод:")

owm = OWM ('API_key')
config_dict = get_default_config()
config_dict['language'] = 'ru'
mgr = owm.weather_manager()

observation = mgr.weather_at_place(city)

geolocator = Nominatim(user_agent = "name_of_your_app")

location = geolocator.geocode(city)

lat = location.latitude
lon=location.longitude
print(lat, lon)

coi = owm.coindex_around_coords(lat, lon)

print(coi)

Т.е ошибка в том что owm не содержит объект coindex_around_coords, но при этом в документации: https://pyowm.readthedocs.io/en/latest/v3/air-pollution-api-usage-examples.html приведен такой именно пример реализации.

Или быть может нужно вызывать CO index api запросом параметра get_coi? Не могу сообразить.


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

Автор решения: Serg Bocharov

У них много устаревших примеров - документация похоже заброшена. Сейчас вам нужен отдельный менеджер на каждый API похоже:

from geopy.geocoders import Nominatim
from pyowm import OWM
from pyowm.utils.config import get_default_config


city = input("город:")

config_dict = get_default_config()
config_dict['language'] = 'ru'
owm = OWM('API_key', config_dict)

mgr = owm.weather_manager()

# Создаем менеджер для AirPollution   
air = owm.airpollution_manager()
observation = mgr.weather_at_place(city)

geolocator = Nominatim(user_agent = "name_of_your_app")

location = geolocator.geocode(city)

lat = location.latitude
lon = location.longitude
print(lat, lon)

# И используем уже его метод
coi = air.coindex_around_coords(lat, lon)

print(coi)
→ Ссылка