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

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

#!usr/bin/env python
# encoding:utf-8
from __future__ import division"""
__Author__:沂水寒城
功能: python 获取指定城市【昨日天气+未来15天预报天气+空气质量+气象数据】
"""import sys
import json
import requestsif sys.version_info == 2:reload(sys)sys.setdefaultencoding("utf-8")pre_url = "http://t.weather.sojson.com/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.weather.sojson.com/api/weather/city/101010100

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

{"message":"success感谢又拍云(upyun.com)提供CDN赞助","status":200,"date":"20191104","time":"2019-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":"2019-11-04","week":"星期一","sunrise":"06:44","sunset":"17:10","aqi":70,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"05","high":"高温 16℃","low":"低温 5℃","ymd":"2019-11-05","week":"星期二","sunrise":"06:46","sunset":"17:09","aqi":90,"fx":"东北风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"06","high":"高温 15℃","low":"低温 3℃","ymd":"2019-11-06","week":"星期三","sunrise":"06:47","sunset":"17:08","aqi":110,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"07","high":"高温 12℃","low":"低温 2℃","ymd":"2019-11-07","week":"星期四","sunrise":"06:48","sunset":"17:07","aqi":70,"fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"08","high":"高温 16℃","low":"低温 1℃","ymd":"2019-11-08","week":"星期五","sunrise":"06:49","sunset":"17:06","aqi":80,"fx":"西南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"09","high":"高温 13℃","low":"低温 3℃","ymd":"2019-11-09","week":"星期六","sunrise":"06:50","sunset":"17:05","aqi":52,"fx":"北风","fl":"<3级","type":"阴","notice":"不要被阴云遮挡住好心情"},{"date":"10","high":"高温 17℃","low":"低温 3℃","ymd":"2019-11-10","week":"星期日","sunrise":"06:51","sunset":"17:04","fx":"西北风","fl":"3-4级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"11","high":"高温 15℃","low":"低温 4℃","ymd":"2019-11-11","week":"星期一","sunrise":"06:53","sunset":"17:03","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"12","high":"高温 16℃","low":"低温 4℃","ymd":"2019-11-12","week":"星期二","sunrise":"06:54","sunset":"17:02","fx":"西风","fl":"4-5级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"13","high":"高温 11℃","low":"低温 -1℃","ymd":"2019-11-13","week":"星期三","sunrise":"06:55","sunset":"17:01","fx":"西北风","fl":"<3级","type":"阴","notice":"不要被阴云遮挡住好心情"},{"date":"14","high":"高温 3℃","low":"低温 -3℃","ymd":"2019-11-14","week":"星期四","sunrise":"06:56","sunset":"17:00","fx":"西北风","fl":"5-6级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"15","high":"高温 5℃","low":"低温 -3℃","ymd":"2019-11-15","week":"星期五","sunrise":"06:57","sunset":"16:59","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"16","high":"高温 6℃","low":"低温 -2℃","ymd":"2019-11-16","week":"星期六","sunrise":"06:58","sunset":"16:59","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"17","high":"高温 8℃","low":"低温 0℃","ymd":"2019-11-17","week":"星期日","sunrise":"06:59","sunset":"16:58","fx":"南风","fl":"<3级","type":"晴","notice":"愿你拥有比阳光明媚的心情"},{"date":"18","high":"高温 8℃","low":"低温 2℃","ymd":"2019-11-18","week":"星期一","sunrise":"07:01","sunset":"16:57","fx":"东风","fl":"<3级","type":"小雨","notice":"雨虽小,注意保暖别感冒"}],"yesterday":{"date":"03","high":"高温 14℃","low":"低温 4℃","ymd":"2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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'2019-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]

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

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

  1. 获取海岛预报、近海 、旅游城市、美丽海岛、海水浴场预报包括海温、海浪等值 根据海洋观测站点id获取3天海洋预报。雷达单站数据根据经纬度获取任意点的天气数据含分钟预报、小时预报,空气质量、生活指数、天气

    今日新增至126,接口还在不断扩展更新中 qq群:305694703 史上最全天气数据接口包括环境.气象.预警.水文.预报.实况.格点,落区.等值面.雷达.云图.空气质量实况及预报.气候统计.雷电分布 ...

  2. 爬虫-获取指定城市所有企业信息

    之前写过一个博客:python爬虫从企查查获取企业信息-手工绕开企查查的登录验证 https://blog.csdn.net/rock4you/article/details/88254612 但只能 ...

  3. python下载文件到指定目录-Python获取指定文件夹下的文件名的方法

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...

  4. python获取指定目录下的所有指定后缀的文件名

    python获取指定目录下的所有指定后缀的文件名 使用到的函数有: os.path.splitext():分离文件名与扩展名 代码如下: #! /usr/bin/python # -*- coding ...

  5. Python 获取指定模块基址

    因为昨天研究FPS游戏时候,发现有个动态地址每次重启电脑都会不同,然后因为有过用C和易语言编写指定模块名获取基址的经验,所以打算用Python来试试 在网上搜索了一点资料,发现有吾爱有一篇是使用Pyt ...

  6. 网络爬虫-爬取指定城市空气质量检测数据

    爬取指定城市空气质量检测数据 网站链接 → https://www.aqistudy.cn/historydata/ 以月数据为例,见下图: 然后我们通过console调试可以发现 这个网页在item ...

  7. 基于Python的空气质量网络数据爬虫,构建面向深度学习数据预测的空气质量数据集

    目录 1.目标 2. 思路 3.算法 3.1 算法流程 3.2 开发环境 4 核心代码 4.1 Header伪装 4.2 get_html_soup函数 4.3 get_city_link_list函 ...

  8. linux天气时钟,预报天气时钟软件预约-预报天气时钟手机版v1.0-Linux公社

    预报天气时钟中拥有非常精准的天气预报功能,不仅可以预测到温度.湿度.空气质量指数.降水量等等,而且还会为你及时提醒恶劣天气情况,让你尽早做好出行准备,此外在预报天气时钟软件中你还可以享受到实时的空气质 ...

  9. 城市空气质量(AQI)数据爬虫

    全国各城市(网页上有的)空气质量爬虫,包括城市名称,AQI等信息,保存为.csv文件格式 网址首页:https://www.aqistudy.cn/historydata/index.php 首先是获 ...

  10. Android 天气APP(十二)空气质量、UI优化调整

    上一篇:Android 天气APP(十一)未来七天的天气预报.逐小时预报.UI优化 空气质量数据.UI优化 新版------------------- 一.自定义View 二.修改XML布局 三.添加 ...

最新文章

  1. LLVM Backend技术
  2. C# 真正能发邮件的源码
  3. extjs gridpanel滚动条问题显示数据不完整
  4. JVM:四种引用总结
  5. 计算机专业考研数据结构比较,计算机专业考研科目:数据结构重点汇总
  6. 【编译原理】文法分类
  7. 在改善人类生活的路上,CV能做的还有很多!
  8. 跟随腾讯WeTest一起来2019Unreal Open Day!
  9. markdown格式的文章如何转换为可以发布在微信公众号上的内容
  10. 互联网专用计算机屏保,5款屏保,让你的电脑在闲置时也与众不同。
  11. 基于udp端口转发程序设计(一)
  12. 进销存财务管理重要性
  13. FPGA零基础学习:图像显示系统设计
  14. 各个版本的精易模块分享下载
  15. 联想微型计算机开机黑屏什么原因,联想笔记本电源键亮但黑屏怎么办
  16. 分享 100 道基础的前端面试题(附答案)
  17. 直播行业的梦幻泡影:主播们的数据人生
  18. 游戏类型分类-游戏的分类有哪些
  19. 上网行为管理_上网行为管理如何预防以及屏蔽勒索病毒攻击
  20. ActiveMQ : Async error occurred: java.lang.OutO...

热门文章

  1. python 回溯法 子集树模板 系列 —— 17、找零问题
  2. 七easy网络陷阱上当
  3. Linux的chkconfig命令详解
  4. 数据仓库入门(实验9)查询多维数据集
  5. IIS asp.net 4.0
  6. 如何让一个函数返回多个值(C#)
  7. [转]Linux 基本操作(RM 删除)
  8. Python 单例模式实现的五种方式
  9. python 正则表达式 符号及其定义
  10. (一)Quartz2.2.1 简单例子