WeatherBit Rest API的Python包装器
项目描述
Python包装器,用于WeatherBit API
本模块通过其REST API与WeatherBit.io通信。该模块仅支持免费层API,有关更多信息,请参阅此处。
对于免费层,可以检索以下数据
- 当前条件
- 预报数据 - 每日数据。
- 严重天气警报
它需要一个API密钥才能工作,可以从Weatherbit免费获取
该模块主要编写用于在Home Assistant中用作名为weatherbit
的定制集成,但也可能用于其他目的。
安装
pyweatherbitdata
可在PyPi上使用
pip install pyweatherbitdata
用法
此库主要设计用于在异步上下文中使用。
库的主要接口是pyweatherbitdata.WeatherBitApiClient
。此接口接受7个选项
api_key
:(必需) 从WeatherBit获取的个人API密钥(见上方)。latitude
:(必需) 需要数据的位置的纬度。longitude
:(必需) 需要数据的位置的经度。units
:(可选) 此处有效的选项是metric或imperial。此模块始终以metric单位检索数据,因此仅在未选择metric的情况下才会进行值转换。默认值为metriclanguage
: (可选)从WeatherBit获取的所有文本值的语言。默认为 英文homeassistant
: (可选)有效选项为 True 或 False。如果设置为True,则某些单位类型将不会被转换,因为Home Assistant会处理这个问题。默认值为 True
示例程序
"""Test Program."""
from __future__ import annotations
import asyncio
import logging
import time
from pyweatherbitdata.api import WeatherBitApiClient
from pyweatherbitdata.data import (
ObservationDescription,
BaseDataDescription,
ForecastDescription
)
from pyweatherbitdata.exceptions import (
InvalidApiKey,
RequestError,
ResultError,
)
_LOGGER = logging.getLogger(__name__)
async def main() -> None:
logging.basicConfig(level=logging.DEBUG)
start = time.time()
weatherbit = WeatherBitApiClient(
"YOU_API_KEY",
55.625053,
12.136619,
language="da",
)
try:
await weatherbit.initialize()
except InvalidApiKey as err:
_LOGGER.debug(err)
except RequestError as err:
_LOGGER.debug(err)
except ResultError as err:
_LOGGER.debug(err)
data: BaseDataDescription = weatherbit.station_data
if data is not None:
for field in data.__dataclass_fields__:
value = getattr(data, field)
print(field, "-", value)
data: ObservationDescription = await weatherbit.update_sensors()
if data is not None:
for field in data.__dataclass_fields__:
value = getattr(data, field)
print(field, "-", value)
data: ForecastDescription = await weatherbit.update_forecast()
if data is not None:
for field in data.__dataclass_fields__:
value = getattr(data, field)
print(field, "-", value)
end = time.time()
await weatherbit.req.close()
_LOGGER.info("Execution time: %s seconds", end - start)
asyncio.run(main())
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
pyweatherbitdata-1.0.15.tar.gz (12.5 kB 查看哈希)
构建分发
pyweatherbitdata-1.0.15-py3-none-any.whl (11.4 kB 查看哈希)
关闭
pyweatherbitdata-1.0.15.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d72bcd57b09ab71d39fe3310f49b89f8f322227a9b88d097ef82ed001393642 |
|
MD5 | 731f11c499bf25454f526fb2669e40a3 |
|
BLAKE2b-256 | 81c791bf0fbcbe1d2c1aedfb3815ed88d5d0c6358bfe711d9b1c3ef621eacf2b |
关闭
pyweatherbitdata-1.0.15-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 593b076b941d3dfac96a2d7fde55447c5a28287ada9eeeb41172bac98bf895c7 |
|
MD5 | 32fd3e72a1dce674c83b766ec165e738 |
|
BLAKE2b-256 | e5cdb97d02b35494722f56ffc0d6241de360d71dcd51f0acfc8f04763931074e |