1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python 获取指定城市【昨日天气+未来15天预报天气+空气质量+气象数据】

python 获取指定城市【昨日天气+未来15天预报天气+空气质量+气象数据】

时间:2023-09-15 19:44:05

相关推荐

python 获取指定城市【昨日天气+未来15天预报天气+空气质量+气象数据】

下午正好有点时间就把之前想做的一个工作给结束掉,之前网上搜索数据的时候发现了一个在线的数据结果,提供了一下正好需要的数据,一般的气象类网站大多只能提供未来一周的预测数据,而这个网站则可以提供未来半月的预测数据,当然,免费的版本可能颗粒度没有那么的高,不过对于一般的应用需求来说已经是足够了的。

因为整体的实现来说非常简单这里就不再累述了,直接帖出来实现的代码如下所示:

#!usr/bin/env python# encoding:utf-8from __future__ import division"""__Author__:沂水寒城功能: python 获取指定城市【昨日天气+未来15天预报天气+空气质量+气象数据】"""import sysimport jsonimport requestsif sys.version_info == 2:reload(sys)sys.setdefaultencoding("utf-8")pre_url = "http://t./api/weather/city/"def weather(city_code="101210101"):"""借助于在线接口获取所需数据"""url = pre_url + city_codedata = requests.get(url).json()res_list = []if data["status"] == 200:cityInfo = data["cityInfo"]forest_data = data["data"]["forecast"]yesterday_data = data["data"]["yesterday"]forest_data.append(yesterday_data)key_list = ["date","high","low","ymd","week","sunrise","sunset","aqi","fx","fl","type","notice",]for one_day in forest_data:one_list = []for i in range(len(key_list)):try:one_list.append(one_day[key_list[i]])except:one_list.append("NULL")res_list.append(one_list)res_list = sorted(res_list, key=lambda e: e[0])return res_listif __name__ == "__main__":res_list = weather(city_code="101210101")for one in res_list:print(one)

以下述链接【北京市】为例:

http://t./api/weather/city/101010100

在浏览器中回车后返回的结果如下所示:

{"message":"success感谢又拍云()提供CDN赞助","status":200,"date":"1104","time":"-11-04 13:39:02","cityInfo":{"city":"北京市","citykey":"101010100","parent":"北京","updateTime":"12:54"},"data":{"shidu":"56%","pm25":44.0,"pm10":58.0,"quality":"良","wendu":"13","ganmao":"极少数敏感人群应减少户外活动","forecast":[{"date":"04","high":"高温 16℃","low":"低温 5℃","ymd":"-11-04","week":"星期一","sunrise":"06:44","sunset":"17:10","aqi":70,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"05","high":"高温 16℃","low":"低温 5℃","ymd":"-11-05","week":"星期二","sunrise":"06:46","sunset":"17:09","aqi":90,"fx":"东北风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"06","high":"高温 15℃","low":"低温 3℃","ymd":"-11-06","week":"星期三","sunrise":"06:47","sunset":"17:08","aqi":110,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"07","high":"高温 12℃","low":"低温 2℃","ymd":"-11-07","week":"星期四","sunrise":"06:48","sunset":"17:07","aqi":70,"fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"08","high":"高温 16℃","low":"低温 1℃","ymd":"-11-08","week":"星期五","sunrise":"06:49","sunset":"17:06","aqi":80,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"09","high":"高温 13℃","low":"低温 3℃","ymd":"-11-09","week":"星期六","sunrise":"06:50","sunset":"17:05","aqi":52,"fx":"北风","fl":"<3级","type":"阴","notice":"不要被阴云遮挡住好心情"},{"date":"10","high":"高温 17℃","low":"低温 3℃","ymd":"-11-10","week":"星期日","sunrise":"06:51","sunset":"17:04","fx":"西北风","fl":"3-4级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"11","high":"高温 15℃","low":"低温 4℃","ymd":"-11-11","week":"星期一","sunrise":"06:53","sunset":"17:03","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"12","high":"高温 16℃","low":"低温 4℃","ymd":"-11-12","week":"星期二","sunrise":"06:54","sunset":"17:02","fx":"西风","fl":"4-5级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"13","high":"高温 11℃","low":"低温 -1℃","ymd":"-11-13","week":"星期三","sunrise":"06:55","sunset":"17:01","fx":"西北风","fl":"<3级","type":"阴","notice":"不要被阴云遮挡住好心情"},{"date":"14","high":"高温 3℃","low":"低温 -3℃","ymd":"-11-14","week":"星期四","sunrise":"06:56","sunset":"17:00","fx":"西北风","fl":"5-6级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"15","high":"高温 5℃","low":"低温 -3℃","ymd":"-11-15","week":"星期五","sunrise":"06:57","sunset":"16:59","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"16","high":"高温 6℃","low":"低温 -2℃","ymd":"-11-16","week":"星期六","sunrise":"06:58","sunset":"16:59","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"17","high":"高温 8℃","low":"低温 0℃","ymd":"-11-17","week":"星期日","sunrise":"06:59","sunset":"16:58","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"18","high":"高温 8℃","low":"低温 2℃","ymd":"-11-18","week":"星期一","sunrise":"07:01","sunset":"16:57","fx":"东风","fl":"<3级","type":"小雨","notice":"雨虽小,注意保暖别感冒"}],"yesterday":{"date":"03","high":"高温 14℃","low":"低温 4℃","ymd":"-11-03","week":"星期日","sunrise":"06:43","sunset":"17:11","aqi":54,"fx":"东北风","fl":"<3级","type":"多云","notice":"阴晴之间,谨防紫外线侵扰"}}}

代码输出如下所示:

[u'03', u'\u9ad8\u6e29 14\u2103', u'\u4f4e\u6e29 4\u2103', u'-11-03', u'\u661f\u671f\u65e5', u'06:43', u'17:11', 54, u'\u4e1c\u5317\u98ce', u'<3\u7ea7', u'\u591a\u4e91', u'\u9634\u6674\u4e4b\u95f4\uff0c\u8c28\u9632\u7d2b\u5916\u7ebf\u4fb5\u6270'][u'04', u'\u9ad8\u6e29 16\u2103', u'\u4f4e\u6e29 5\u2103', u'-11-04', u'\u661f\u671f\u4e00', u'06:44', u'17:10', 70, u'\u897f\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'05', u'\u9ad8\u6e29 16\u2103', u'\u4f4e\u6e29 5\u2103', u'-11-05', u'\u661f\u671f\u4e8c', u'06:46', u'17:09', 90, u'\u4e1c\u5317\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'06', u'\u9ad8\u6e29 15\u2103', u'\u4f4e\u6e29 3\u2103', u'-11-06', u'\u661f\u671f\u4e09', u'06:47', u'17:08', 110, u'\u897f\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'07', u'\u9ad8\u6e29 12\u2103', u'\u4f4e\u6e29 2\u2103', u'-11-07', u'\u661f\u671f\u56db', u'06:48', u'17:07', 70, u'\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'08', u'\u9ad8\u6e29 16\u2103', u'\u4f4e\u6e29 1\u2103', u'-11-08', u'\u661f\u671f\u4e94', u'06:49', u'17:06', 80, u'\u897f\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'09', u'\u9ad8\u6e29 13\u2103', u'\u4f4e\u6e29 3\u2103', u'-11-09', u'\u661f\u671f\u516d', u'06:50', u'17:05', 52, u'\u5317\u98ce', u'<3\u7ea7', u'\u9634', u'\u4e0d\u8981\u88ab\u9634\u4e91\u906e\u6321\u4f4f\u597d\u5fc3\u60c5'][u'10', u'\u9ad8\u6e29 17\u2103', u'\u4f4e\u6e29 3\u2103', u'-11-10', u'\u661f\u671f\u65e5', u'06:51', u'17:04', 'NULL', u'\u897f\u5317\u98ce', u'3-4\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'11', u'\u9ad8\u6e29 15\u2103', u'\u4f4e\u6e29 4\u2103', u'-11-11', u'\u661f\u671f\u4e00', u'06:53', u'17:03', 'NULL', u'\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'12', u'\u9ad8\u6e29 16\u2103', u'\u4f4e\u6e29 4\u2103', u'-11-12', u'\u661f\u671f\u4e8c', u'06:54', u'17:02', 'NULL', u'\u897f\u98ce', u'4-5\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'13', u'\u9ad8\u6e29 11\u2103', u'\u4f4e\u6e29 -1\u2103', u'-11-13', u'\u661f\u671f\u4e09', u'06:55', u'17:01', 'NULL', u'\u897f\u5317\u98ce', u'<3\u7ea7', u'\u9634', u'\u4e0d\u8981\u88ab\u9634\u4e91\u906e\u6321\u4f4f\u597d\u5fc3\u60c5'][u'14', u'\u9ad8\u6e29 3\u2103', u'\u4f4e\u6e29 -3\u2103', u'-11-14', u'\u661f\u671f\u56db', u'06:56', u'17:00', 'NULL', u'\u897f\u5317\u98ce', u'5-6\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'15', u'\u9ad8\u6e29 5\u2103', u'\u4f4e\u6e29 -3\u2103', u'-11-15', u'\u661f\u671f\u4e94', u'06:57', u'16:59', 'NULL', u'\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'16', u'\u9ad8\u6e29 6\u2103', u'\u4f4e\u6e29 -2\u2103', u'-11-16', u'\u661f\u671f\u516d', u'06:58', u'16:59', 'NULL', u'\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'17', u'\u9ad8\u6e29 8\u2103', u'\u4f4e\u6e29 0\u2103', u'-11-17', u'\u661f\u671f\u65e5', u'06:59', u'16:58', 'NULL', u'\u5357\u98ce', u'<3\u7ea7', u'\u6674', u'\u613f\u4f60\u62e5\u6709\u6bd4\u9633\u5149\u660e\u5a9a\u7684\u5fc3\u60c5'][u'18', u'\u9ad8\u6e29 8\u2103', u'\u4f4e\u6e29 2\u2103', u'-11-18', u'\u661f\u671f\u4e00', u'07:01', u'16:57', 'NULL', u'\u4e1c\u98ce', u'<3\u7ea7', u'\u5c0f\u96e8', u'\u96e8\u867d\u5c0f\uff0c\u6ce8\u610f\u4fdd\u6696\u522b\u611f\u5192'][Finished in 0.4s]

有需要的话可以亲自动手实践一下,本质上就是【网络请求+数据解析】。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。