@VinogradovDionis
Студент

Как узнать точный перевод description в python owm?

В общем, в документации по python owm есть описание detailed_status. Я делаю что-то в роде этого:
prog_2 = w.detailed_status
	if prog_2 == 'пасмурно':
		emo = '☁'
	elif prog_2 =='дождливо':
		emo = ''
	elif prog_2 == 'снежно':
		emo = ''
	elif prog_2 == 'дождь':
		emo = '⛈'
	elif prog_2 == 'снег':
		emo = '⛄️'
	elif prog_2 == 'солнечно':
		emo = '☀️'
	elif prog_2 == 'туманно':
		emo = ''
	else:
		emo = '❗️'


Бывает много видов погоды, и часто код обращается к else, потому что не знает, что поставить в переменную emo. Пример: w.detailed_status = 'небольшая облачность', а в условии есть только 'пасмурно'. Можно ли упростить мою задачу, обращаясь к detailed_status по ID, или каким-нибудь образом вывести все виды погоды на русском языке. Переводить документацию слово в слово не получится, да играть в угадайку не хочется. Возможно, есть какое-то другое решение? Спасибо!
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Перевод и не нужен по сути. По ссылке, которую вы привели, есть таблица кодов погоды. Достаточно будет перевести их вручную и подобрать иконку, а в коде ориентироваться на ID.

Например, такой код сейчас вернет код 721:
weather = mgr.weather_at_place('London,GB')
print(weather.weather.weather_code)


По таблице это `haze` (туман). Пусть ему соответствует такой смайл: U+1F32B

Дальше уже можно сделать свой словарь с юникодом и ID погоды. Где ключи словаря - ID, а значения - юникоды.

weather_emojis = {721: '\U0001F32B', 500: '\U00001111'} # и тд


И отправлять уже так:

emo = weather_emojis[w.weather_code]

В результате это уже одна строчка кода (ну плюс еще одна на словарь), и полная независимость от языка
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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