Python weather как поменять язык
При форматировании чисел Python по умолчанию использует англосаксонскую систему, при которой разряды целого числа отделяются друг от друга запятыми, а дробная часть от целой отделяется точкой. В континентальной Европе, например, используется другая система, при которой разряды разделяются точкой, а дробная и целая часть — запятой:
# англосаксонская система 1,234.567 # европейская система 1.234,567
И для решения проблемы форматирования под определенную культуру в Python имеется встроенный модуль locale .
Для установки локальной культуры в модуле locale определена функция setlocale() . Она принимает два параметра:
setlocale(category, locale)
Первый параметр указывает на категорию, к которой применяется функция — к числам, валютам или и числам, и валютам. В качестве значения для параметра мы можем передавать одну из следующих констант:
- LC_ALL : применяет локализацию ко всем категориям — к форматированию чисел, валют, дат и т.д.
- LC_NUMERIC : применяет локализацию к числам
- LC_MONETARY : применяет локализацию к валютам
- LC_TIME : применяет локализацию к датам и времени
- LC_CTYPE : применяет локализацию при переводе символов в верхний или нижний регистр
- LC_COLLIATE : применяет локаль при сравнении строк
Второй параметр функции setlocale указывает на локальную культуру, которую надо использовать. На ОС Windows можно использовать код страны по ISO из двух символов, например, для США — «us», для Германии — «de», для России — «ru». Но на MacOS необходимо указывать код языка и код страны, например, для английского в США — «en_US», для немецкого в Германии — «de_DE», для русского в России — «ru_RU». По умолчанию фактически используется культура «en_US».
Непосредственно для форматирования чисел и валют модуль locale предоставляет две функции:
- currency(num) : форматирует валюту
- format_string(str, num) : подставляет число num вместо плейсхолдера в строку str Применяются следующие плейсхолдеры:
- d : для целых чисел
- f : для чисел с плавающей точкой
- e : для экспоненциальной записи чисел
Перед каждым плейсхолдером ставится знак процента %, например:
При выводе дробных чисел перед плейсхолдером после точки можно указать, сколько знаков в дробной части должно отображаться:
%.2f # два знака в дробной части
Применим локализацию чисел и валют в немецкой культуре:
import locale locale.setlocale(locale.LC_ALL, "de") # для Windows # locale.setlocale(locale.LC_ALL, "de_DE") # для MacOS number = 12345.6789 formatted = locale.format_string("%f", number) print(formatted) # 12345,678900 formatted = locale.format_string("%.2f", number) print(formatted) # 12345,68 formatted = locale.format_string("%d", number) print(formatted) # 12345 formatted = locale.format_string("%e", number) print(formatted) # 1,234568e+04 money = 234.678 formatted = locale.currency(money) print(formatted) # 234,68 €Если вместо конкретного кода в качестве второго параметра передается пустая строка, то Python будет использовать культуру, которая применяется на текущей рабочей машине. А с помощью функции getlocale() можно получить эту культуру:
import locale locale.setlocale(locale.LC_ALL, "") number = 12345.6789 formatted = locale.format_string("%.02f", number) print(formatted) # 12345,68 print(locale.getlocale()) # ('Russian_Russia', '1251') - Windows # ('ru_RU', 'UTF-8') - MacOSСтоит отметить, что в зависимости от системы вывод может отличаться.
Не могу сделать русский язык для pyowm
Хотел сделать программу, на основе PyOwm. Вроде всё работало, но я не могу сделать русский язык, хотя всё сделал правильно. Вот код:
from pyowm import OWM owm = OWM('[token]', language = 'ru') place = input("Укажите город/страну: ") mgr = owm.weather_manager() observation = mgr.weather_at_place(place) w = observation.weather print(w)Что это выдаёт:
owm = OWM('[token]', language = "ru") # You MUST provide a valid API key TypeError: __init__() got an unexpected keyword argument 'language'Пишет что-то связанное с аргументом language, но я не понимаю
Отслеживать
68k 218 218 золотых знаков 79 79 серебряных знаков 221 221 бронзовый знак
задан 16 авг 2020 в 9:50
Никита Картавый Никита Картавый
37 1 1 серебряный знак 5 5 бронзовых знаков
Код и ошибки в текстовом виде (не скринами) в самом вопросе (не в комментариях)
16 авг 2020 в 9:52В версии pyowm-2.10.0 на этот аргумент не ругается, зато ругается дальше, что там нет метода weather_manager .
16 авг 2020 в 10:14
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Методы описанные выше у меня не работали (я думаю как и у вас, поэтому мне пришлось самому копаться на официальном сайте с документацией (там все на английском)
Вот ссылка если вы что-то не поймете или еще что: https://github.com/csparpa/pyowm там переходите в раздел документация («Documentation»)/ там, под ним будет «Code recipes»/ потом какое-то время мотаете вниз и там будет («Language setting»)-то, что нам и нужно)
from pyowm.owm import OWM from pyowm.utils.config import get_default_config config_dict = get_default_config() config_dict['language'] = 'pt' # вместо pt вставляете свой язык (ru) owm = OWM('ваш API ключ', config_dict)`from pyowm.owm import OWMкроме pt и API БОЛЬШЕ НИЧЕГО НЕ ТРОГАЕТЕ надеюсь я кому то помог))))
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Телеграмм-бот, рассказывающий о погоде
nsbarsukov/weather-telegram-bot
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to showName already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit timeREADME.md
Телеграмм-бот, рассказывающий о погоде. Написан на python.
Применяются техники NLP для извлечения городов в их начальной форме и дат из текстов пользователя (пакет natasha для NLP на русском языке).
Для получения координат города по его названию используется Yandex API для перевода географических координат в адрес и наоборот.
Для получения прогноза погоды по полученным координатам используется Open Weather API.- Что умеет бот
- Используемые библиотеки
- Запуск бота
- Полезные ссылочки с tutorial по написанию бота
- Почему выбрана python-telegram-bot библиотека
- Умеет говорить погоду в ЛЮБОМ городе России (за исключением каких-то мелких городов, о которых не знает API яндекса или open weather).
- Бот умеет извлекать названия городов и приводить их названия в начальную форму (чтобы потом получить координаты данного города).
- Бот умеет извлекать даты и приводит их единому формату (далеко не идеально, но справляется с многими кейсами).
- На основе извлеченного названия города бот умеет давать прогноз погоды на нужную дату (в пределах 5 дней вперед).
- Бот умеет реагировать на непонятные высказывания.
- Бот умеет здороваться, прощаться.
Перед запуском проекта необходимо установить следующие пакеты:
- python-telegram-bot — библиотека-обертка для работы с api телеграмма (подробнее здесь)
- natasha — библиотека для nlp при работе с русским текстом (подробнее здесь)
- emoji — пригодится для работы со смайликами
- requests — для работы с Api Yandex и API Open Weather
- Иметь установленный python версии >= 3.8
- Загрузи все используемые библиотеки командой:
pip3 install python-telegram-bot natasha emoji requests - В файле constants/global_env_variables.py нужно задать токены для работы с апишками.
Рекомендуемый вариант: ничего не менять в коде, а задать каждую переменную в глобальном окружении своего компьютера (как создавать глобальные переменные окружения для bash/zsh здесь).
Легкий и быстрый вариант (только для локального запуска!): Ты можешь просто заменить каждую переменную в духе BOT_TOKEN = os.environ.get(‘BOT_TOKEN’) на BOT_TOKEN=»your token» .- в константе BOT_TOKEN подставь токен своего бота (как создать бота и получить токен можно почитать здесь)
- в константе YANDEX_GEOCODER_API_TOKEN подставь токен для API для перевода географических координат в адрес и наоборот.
- в константе OPEN_WEATHER_API_TOKEN подставь токен для Open Weather API.
Полезные ссылочки с tutorial по написанию бота
- Полное руководство Python по созданию Telegram Bot с использованием python-telegram-bot (статья от 7 мая 2020)
- Telegram-бот для получения адреса по локации или координатам с использованием python-telegram-bot (статья от 9 сентября 2020)
- Telegram-бот на python-telegram-bot + flask + heroku deploy
- Статья на TProger по созданию телеграмм чат бота и его deploy на Heroku
- Пакет natasha для nlp на русском языке
- Как отправлять смайлики через telegram bot и emoji cheat sheet
Почему выбрана python-telegram-bot библиотека
На момент создания бота для Python имелось 2 крупных библиотеки согласно странице на официальном сайте телеграмма в разделе «Bot Code Examples»:
- python-telegram-bot
- pyTelegramBotAPI
Обе либы разрабатывали с 2015 (согласно статистике релизов) и активно разрабатываются до сих пор. Выбор в пользу python-telegram-bot был сделан крайне примитивно: с 2015 года по 2020 он собрал в 3 раза больше звезд и форков, чем его конкурент (была цель научиться пользоваться инструментом, которое широко одобрило сообщество).
python-weather 1.1.0
A free and asynchronous weather API wrapper made in Python, for Python.
Навигация
Ссылки проекта
Статистика
Метаданные
Лицензия: MIT License (MIT)
Автор: null8626
Метки weather, forecast, weather-api, weather-forecast
Требует: Python >=3.8
Сопровождающие
Классификаторы
Описание проекта
python-weather
A free and asynchronous weather Python API wrapper made in Python, for Python.
Installation
pip install python-weather
Example
Подробности проекта
Ссылки проекта
Статистика
Метаданные
Лицензия: MIT License (MIT)
Автор: null8626
Метки weather, forecast, weather-api, weather-forecast
Требует: Python >=3.8
Сопровождающие
Классификаторы
История выпусков Уведомления о выпусках | Лента RSS
Эта версия
Загрузка файлов
Загрузите файл для вашей платформы. Если вы не уверены, какой выбрать, узнайте больше об установке пакетов.
Источник распределения
Uploaded 23 нояб. 2023 г. source
Построенный дистрибутив
Uploaded 23 нояб. 2023 г. py3
Хеши для python-weather-1.1.0.tar.gz
Хеши для python-weather-1.1.0.tar.gz
Алгоритм Хеш-дайджест SHA256 25011f8dba6bdf5cb7b48986ecf212c955932802c4aebc9c1bc9e4e515ce5908 Копировать MD5 950f9cddc00222dbe517676e52b17c6b Копировать BLAKE2b-256 c3196ffacc9d143a3141ddb67034955d80d1a8b35bd100f48a23967c2df44a47 Копировать Хеши для python_weather-1.1.0-py3-none-any.whl
Хеши для python_weather-1.1.0-py3-none-any.whl
Алгоритм Хеш-дайджест SHA256 7710b644996981c8491350b6a4a954cae9e2d4109376ef9a4d5f3a6c42bf7aa2 Копировать MD5 111e78e76f980f22635e0f857f4e5bbd Копировать BLAKE2b-256 e36c4ace20878f4fcddf5885a176e97aca0607b0f7ddfdebe667e5f72e5cf4f8 Копировать Помощь
О PyPI
Внесение вклада в PyPI
Использование PyPI
Разработано и поддерживается сообществом Python’а для сообщества Python’а.
Пожертвуйте сегодня!PyPI», «Python Package Index» и логотипы блоков являются зарегистрированными товарными знаками Python Software Foundation.