Last updated:
0 purchases
pyweathercn 1.0.8
An weather forecast library from www.weather.com.cn
Installation
To install this package, simply use pip: $ pip3 install pyweathercn.
There’s no plan to support Python 2.
Example
Python Console example:
>>> import pyweathercn
>>> pyweathercn.Weather('重庆').temp()
'重庆:20'
>>> w = pyweathercn.Weather('北京')
>>> w.data
{'city': '北京', 'aqi': '73', 'tip': '紫外线指数中等涂擦SPF大于15、PA+防晒护肤品。穿衣指数较舒适建议穿薄外套或牛仔裤等服装。', 'temp': '11', 'forecast': [{'date': '17日(今天)', 'type': '晴', 'temp': '4℃', 'wind': '无持续风向 <3级'}, {'date': '18日(明天)', 'type': '晴', 'temp': '18℃/5℃', 'wind': '南风 <3级'}, {'date': '19日(后天)', 'type': '多云', 'temp': '18℃/6℃', 'wind': '西南风 <3级'}, {'date': '20日(周六)', 'type': '多云', 'temp': '18℃/7℃', 'wind': '南风 <3级'}, {'date': '21日(周日)', 'type': '多云', 'temp': '18℃/8℃', 'wind': '南风 <3级'}, {'date': '22日(周一)', 'type': '多云转晴', 'temp': '19℃/7℃', 'wind': '南风 <3级'}, {'date': '23日(周二)', 'type': '晴', 'temp': '19℃/5℃', 'wind': '西风 <3级'}]}
>>> w.today()
'北京:23日(今天)晴15℃西南风 3-4级'
>>> w.tomorrow(True)
{'date': '24日(明天)', 'type': '晴', 'temp': '31℃/17℃', 'wind': '南风 3-4级'}
>>> w.tip()
'北京温馨提示:紫外线指数很强涂擦SPF20以上,PA++护肤品,避强光。穿衣指数热适合穿T恤、短薄外套等夏季服装。'
>>> w.forecast(False,5)
'北京:28日(周一)多云25℃/15℃东北风 <3级'
Run as a server:
In order for better performance, please install Redis.
import pyweathercn
# running on http://127.0.0.1:8888
pyweathercn.server(host='127.0.0.1')
# running on http://0.0.0.0:3333
pyweathercn.server(3333)
# support ssl: https://www.example.com:8888
# if you fail to listen on www.example.com, you may try 0.0.0.0 instead.
pyweathercn.server('8888', 'www.example.com', ssl_options={
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"})
To access REST API, you may try GET parameter, POST form-data/url-encoded form-data and POST JSON.
Mandatory parameter is city, optional parameter is day.
GET: http://127.0.0.1:8888/weather?city=上海&day=2
POST:http://127.0.0.1:8888/weather with form/json key-value:{“city”,”深圳”}
Run as a server(with API authentication):
import pyweathercn
# running on http://0.0.0.0:3333
pyweathercn.server(auth='/path/to/database.sqlite')
Please refer to sample.sqlite for database format. In this sample:
times: total times for access this API
restrict: set to 0 avoid time limit
key: no more than 32 characters.
You only need to add a parameter called key for your request.
About cURL
If you’re using cURL on Windows(such as git bash, MinGW), you may receive an HTTP 400.
This is because cURL will try to encode query parameters by GBK instead of UTF-8.
This might be an implementation bug on Windows, I’m looking on it.
For now the best thing you should do is use url-encode for all your city name.
TODO
add server deployment: systemd and docker
cURL compatibility
Design
RESETful API Specification
License
MIT
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.