3 / 3 / 0
Регистрация: 26.02.2017
Сообщений: 123

Прогноз погоды с pyowm

08.12.2019, 22:51. Показов 29712. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Есть код, который показывает градусы Цельсия (в данный момент) для выбранного города.
Python
1
2
3
4
5
6
7
import pyowm 
gorod = input('Выберите город'"\n")
owm = pyowm.OWM('мой id owm')
observation = owm.weather_at_place(gorod)
w = observation.get_weather()
temperature = w.get_temperature('celsius')['temp']
print("В городе " + gorod + " сейчас " + str(temperature) + "°С")
.
Нужно дополнить его так, что бы он показывал градусы через 5 дней.
В документации нашел строчку
Python
1
fc = owm.daily_forecast('London,uk', limit=6)
для ежедневного вывода погоды на 6 дней.
Посоветуйте, что можно сделать.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2019, 22:51
Ответы с готовыми решениями:

Не работает pyowm
Вот скриншот ошибки, как я понял проблемы с API? Но я генерирую API прямо на сайте, копирую и все равно не верно.

Проблема с выводом в pyowm на русский
Хочу сделать вывод на русском но пишет почему то на английском Подскажите правильный ответ Это пару примеров как я пытался сделать ...

Прогноз погоды с pyowm
Не понимаю как решить эту проблему. Какой бы город не вводил везде одна и та же погода: -1 и небольшой снег from pyowm import OWM ...

15
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
09.12.2019, 01:51
там же дальше в документации есть
Python
1
2
3
4
5
6
7
fc = owm.daily_forecast('London,uk', limit=6)
f = fc.get_forecast()
for weather in f:
      print (weather.get_reference_time('iso'),weather.get_status())
('2013-09-14 14:00:00+0','Clear')
('2013-09-14 17:00:00+0','Clear')
('2013-09-14 20:00:00+0','Clouds')
1
3 / 3 / 0
Регистрация: 26.02.2017
Сообщений: 123
09.12.2019, 19:59  [ТС]
Это доступно в платной версии. С фри ключом доступна только
Python
1
fc1 = owm .three_hours_forecast ( ваш город )
При выводе fc1 пишет <pyowm.webapi25.forecaster.Forecaster>
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
09.12.2019, 20:10
Лучший ответ Сообщение было отмечено Andy Laytov как решение

Решение

Andy Laytov, ну так они же один и тот же объект возвращают
Python
1
2
3
4
fc1 = owm .three_hours_forecast ( ваш город )
f = fc1.get_forecast()
for weather in f:
      print (weather.get_reference_time('iso'),weather.get_status())
1
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
09.12.2019, 20:26
Там температуры нет. Может её вообще нет, а может это ограничение бесплатного аккаунта.
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
09.12.2019, 20:32
читайте документацию
Python
1
2
3
4
fc1 = owm .three_hours_forecast ( ваш город )
f = fc1.get_forecast()
for weather in f:
      print (weather.get_reference_time('iso'),weather.get_status(),weather.get_temperature(unit='celsius'))
2
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
09.12.2019, 20:42
Спасибо, вчера кучу сайтов перерыл и не нашел. Точнее нашел, но только температуру в архиве погоды, а не прогнозе.
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
09.12.2019, 21:01
edukra, ну так объект прогноза содержит объект погоды, а уж из него и получаются градусы
0
3 / 3 / 0
Регистрация: 26.02.2017
Сообщений: 123
10.12.2019, 00:22  [ТС]
А можно ли вывести только среднюю температуру (как при выводе текущей погоды)

Добавлено через 1 минуту
А можно ли вывести только среднюю температуру как при выводе погоды в данный момент?
Python
1
2
temperature = w.get_temperature('celsius')['temp']
print(str(temperature) + "°С")
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
10.12.2019, 03:38
Andy Laytov, среднюю за 3 часа? ну просто среднее арифметическое подсчитайте
0
3 / 3 / 0
Регистрация: 26.02.2017
Сообщений: 123
11.01.2020, 15:53  [ТС]
Средняя температура (уже там есть), я про то, как вывести только единственное число (без минимальных, максимальных итд).
Что-то вроде этого
Python
1
2
temperature = w.get_temperature('celsius')['temp']
print("В городе " + gorod + " сейчас " + str(temperature) + "°С")
Только это для температуры на сегодня.
С weather.get_temperature такое не проходит.
0
0 / 0 / 0
Регистрация: 26.01.2022
Сообщений: 2
31.01.2022, 22:06
Здраствуйте код не роботает прошу помощ вот ошибка:
Traceback (most recent call last):
File "C:/Users/1234567/AppData/Local/Programs/Python/Python37-32/5 дней.py", line 4, in <module>
fc1 = owm .three_hours_forecast (gorod )
AttributeError: 'OWM' object has no attribute 'three_hours_forecast'



Добавлено через 1 минуту
Code
1
2
3
4
5
6
7
import pyowm 
gorod = input('Выберите город'"\n")
owm = pyowm.OWM('8d71a7f18b4574015c924b0640b64c60')
fc1 = owm .three_hours_forecast (gorod )
f = fc1.get_forecast()
for weather in f:
      print (weather.get_reference_time('iso'),weather.get_status())
0
3 / 3 / 0
Регистрация: 26.02.2017
Сообщений: 123
01.02.2022, 00:44  [ТС]
Честно говоря, уже не помню что по коду, могу отправить вам что у меня есть (проэкт пайтона на визуалке). Напиши в лс.
1
0 / 0 / 0
Регистрация: 26.01.2022
Сообщений: 2
01.02.2022, 09:01
Andy Laytov, буду благодарен пока правдо не знаю как в лс писать
0
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
01.02.2022, 19:26
Sascovski, странно работает без ошибки.
Кликните здесь для просмотра всего текста
Выберите город
краснодар
2022-02-01 18:00:00+00 Clouds
2022-02-01 21:00:00+00 Clouds
2022-02-02 00:00:00+00 Clouds
2022-02-02 03:00:00+00 Clouds
2022-02-02 06:00:00+00 Clouds
2022-02-02 09:00:00+00 Clouds
2022-02-02 12:00:00+00 Clouds
2022-02-02 15:00:00+00 Clouds
2022-02-02 18:00:00+00 Clouds
2022-02-02 21:00:00+00 Clouds
2022-02-03 00:00:00+00 Clouds
2022-02-03 03:00:00+00 Clouds
2022-02-03 06:00:00+00 Clouds
2022-02-03 09:00:00+00 Clouds
2022-02-03 12:00:00+00 Clouds
2022-02-03 15:00:00+00 Clouds
2022-02-03 18:00:00+00 Clouds
2022-02-03 21:00:00+00 Clouds
2022-02-04 00:00:00+00 Rain
2022-02-04 03:00:00+00 Rain
2022-02-04 06:00:00+00 Snow
2022-02-04 09:00:00+00 Snow
2022-02-04 12:00:00+00 Snow
2022-02-04 15:00:00+00 Snow
2022-02-04 18:00:00+00 Clouds
2022-02-04 21:00:00+00 Clouds
2022-02-05 00:00:00+00 Snow
2022-02-05 03:00:00+00 Snow
2022-02-05 06:00:00+00 Clouds
2022-02-05 09:00:00+00 Clouds
2022-02-05 12:00:00+00 Clouds
2022-02-05 15:00:00+00 Clouds
2022-02-05 18:00:00+00 Clouds
2022-02-05 21:00:00+00 Clouds
2022-02-06 00:00:00+00 Rain
2022-02-06 03:00:00+00 Rain
2022-02-06 06:00:00+00 Snow
2022-02-06 09:00:00+00 Snow
2022-02-06 12:00:00+00 Snow
2022-02-06 15:00:00+00 Clouds
>>>
0
3 / 3 / 0
Регистрация: 26.02.2017
Сообщений: 123
13.04.2022, 19:58  [ТС]
Если еще надо то вот. Я все время забываю.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import pyowm
 
 
 
 
owm = pyowm.OWM('2e6ab9e8403e487f99d491d6a595b607')
prog = input(''"\n" '1)Просмотр погоды в любом городе' "\n" '2)Просмотр погоды в 3 городах' "\n" )
if prog == "1":
    gorod = input('Выберите город'"\n")
    observation = owm.weather_at_place(gorod)
    w = observation.get_weather()
    temperature = w.get_temperature('celsius')['temp']
    print("В городе " + gorod + " сейчас " + str(temperature) + "°С") 
    print(""+w.get_detailed_status())
    
    prost = input (''"\n" '1)Прогноз погоды на 5 дней ' "\n" '2)Конец программы' "\n")
    if prost == "1":
        fc1 = owm .three_hours_forecast (gorod )
        f = fc1.get_forecast()
        for weather in f:
                      print (weather.get_reference_time('iso'),weather.get_status())
    elif prost == "2":
         exit(0) 
                  
 
elif prog == "2":
    ch = input('Выберите город для просмотра погоды '"\n" '1)Москва' "\n" '2)Севастополь' "\n" '3)Хабаровск  '"\n")
    if ch == "1":
     gorod = "Москва"
    elif ch == "2":
     gorod = "Севастополь"
    elif ch == "3":
     gorod = "Хабаровск" 
    def reset():
     pog = input(' '"\n" '1)Погода на сегодня ' "\n" '2)Погода на 5 дней' "\n" )
     if pog == "1":
  
      observation = owm.weather_at_place(gorod)
      w = observation.get_weather()
      temperature = w.get_temperature('celsius')['temp']
      print("В городе " + gorod + " сейчас " + str(temperature) + "°С") 
      print(""+w.get_detailed_status())
     elif pog == "2":
 
      fc1 = owm .three_hours_forecast (gorod )
      f = fc1.get_forecast()
      for weather in f:
          print (weather.get_reference_time('iso'),weather.get_status())
    reset()
    while True:
        flag = input("\n"'Что вы хотите?:'"\n" '1)Прогноз погоды или текущая погода ' "\n" '2)Конец программы ' "\n")
 
        if flag == '1':
            reset()
        else:
            break
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2022, 19:58
Помогаю со студенческими работами здесь

Прогноз погоды
Здравствуйте, помогите пожалуйста решить задачу: Программист Виктор занимается совершенно секретными разработками в области...

Pyowm прогноз погоды на утро
windows, Python 3.8 По заданию требуется запросить у сайта https://openweathermap.org/ прогноз погоды и вывести среднюю и максимальную...

Прогноз погоды
Пишу телеграм-бота. Показывает погоду на данный момент. Как реализовать ежедневную рассылку прогноза погоды на сутки?

Прогноз погоды
Привет всем) &quot;l1 - список, элементами которого являются структуры, в которых хранятся дневные сводки температуры за месяц. Сформировать...

Прогноз погоды
Доброго времени суток! Пишу гаджет - средневзвешенный прогноз погоды с рейтингом доверия для каждого метео-портала. Уже пропарсил 2 сайта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru