Python通过API获取天气预报

闲来无事,用Python实现了一个小工具,通过实现API来获取当前的天气预报。

获取API的key

在阿凡达数据上查找天气预报相关的API,注册申请可获得一个key。API有详尽的文档,会返回Json格式的一堆数据,我们解析出来即可。非常简单。话不多说,上代码吧。

实现


#注意:先安装requests。
# -*- coding: utf-8 -*-  import requestsclass WeatherReport():def __init__(self,cityName):self.Url = 'http://api.avatardata.cn/Weather/Query'self.AppKey = '23f69de012da4306815193a00eca0230'self.Value = {'key':self.AppKey, 'cityname':cityName}def GetContent(self):content = requests.get(self.Url,params=self.Value)jsContent = content.json()return jsContentdef FormartContent(self):jsContent = self.GetContent()date = jsContent['result']['realtime']jsWeather = jsContent['result']['weather'][0]allContent = {}allContent['AddressAndTime'] = date['city_name'] + " ** " + jsWeather['date'] + " ** " + jsWeather['nongli'] + u" ** 星期" + jsWeather['week']allContent['WeatherInfo'] = self.GetWeatherInfo(jsWeather['info'])jsLife = jsContent['result']['life']allContent['LifeInfo'] = self.GetLifeInfo(jsLife['info'])strContent = ""strContent = strContent + allContent['AddressAndTime']+"\n"strContent = strContent + "******************************************" + "\n"strContent = strContent + allContent['WeatherInfo']strContent = strContent + "******************************************" + "\n"strContent = strContent + allContent['LifeInfo']print strContentdef GetLifeInfo(self,info):iIndex = 0LifeInfo = {}for item in info.values():if (type(item) is not list):iIndex = iIndex+1continueif (0 == iIndex):LifeInfo['chuanyi'] = u"穿  衣: " + item[1]if (1 == iIndex):LifeInfo['kongtiao'] = u"空  调: " + item[1]if (2 == iIndex):LifeInfo['yundong'] = u"运  动: " + item[1]if (3 == iIndex):LifeInfo['xiche'] = u"紫外线: " + item[1]if (4 == iIndex):LifeInfo['wuran'] = u"洗  车: " + item[1]if (5 == iIndex):LifeInfo['ziwaixian'] = u"感  冒: " + item[1]if (6 == iIndex):LifeInfo['ganmao'] = u"污  染: " + item[1]iIndex = iIndex +1strContent = ""for item in LifeInfo.values():strContent = strContent + item + "\n"return strContentdef GetWeatherInfo(self,info):iIndex = 0weatherInfo = {}for item in info.values():if (type(item) is not list):iIndex = iIndex + 1continuestrContent = self.FormartWeatherInfo(item)if (0 == iIndex):weatherInfo['dawn'] = strContentif (1 == iIndex):weatherInfo['day'] = strContentif (2 == iIndex):weatherInfo['night'] = strContentiIndex = iIndex + 1strContent = ""for item in weatherInfo.values():strContent = strContent + item + "\n"return strContentdef FormartWeatherInfo(self,contents):iIndex = 0strContent = ""listContent = []for item in contents:if (0 == iIndex):iIndex = iIndex + 1continueif (1 == iIndex):strContent = u"当前天气:"if (2 == iIndex):strContent = u"当前温度: "if (3 == iIndex):strContent = u"当前风向: "if (4 == iIndex):strContent = u"风力等级: "if (5 == iIndex):strContent = u"刷新时间: "if (6 == iIndex):strContent = u"温馨提示: "strContent = strContent + contents[iIndex]iIndex = iIndex + 1listContent.append(strContent)strContent = ""for iter in listContent:strContent = strContent + iter + "\n"return strContentweatherObj = WeatherReport("西安")
weatherObj.FormartContent()

输出

西安 * 2017-08-18 * 闰六月廿七 ** 星期五


当前天气:多云
当前温度: 33
当前风向: 东北风
风力等级: 微风
刷新时间: 06:09

当前天气:多云
当前温度: 24
当前风向: 东北风
风力等级: 微风
刷新时间: 19:29


穿 衣: 天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。
空 调: 天气热,到中午的时候您将会感到有点热,因此建议在午后较热时开启制冷空调。
运 动: 天气较好,较适宜进行各种运动,但因天气热,请适当减少运动时间,降低运动强度。
感 冒: 各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。
紫外线: 属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。
洗 车: 较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。

Python小工具——通过API获取天气预报相关推荐

  1. Python 小工具:调用「百度翻译API」实现英汉互译及多语言翻译

    Python 小工具:调用「百度翻译 API」实现英汉互译及多语言翻译 API 简介 过程详解 完整代码 结果展示 附:官方 Demo - Python 2 版本 Python 小工具:调用「百度翻译 ...

  2. 自己整理实现的python小工具

    文章目录 记录一些自己整理实现的python小工具 python获取文件路径 pytho使用opencv进行图像拼接 记录一些自己整理实现的python小工具 python获取文件路径 因为有的程序需 ...

  3. python小工具—图片转为字符txt

    python小工具-图片转为字符txt 图片转为字符txt python小工具-图片转为字符txt 效果展示 转换图片信息 图片信息转字符 完整代码 效果展示 转换图片信息 将图片的rgb色彩信息转为 ...

  4. 自制python小工具(3)——Gadgets1.1

    自制python小工具(3)--Gadgets 1.1 文章目录 自制python小工具(3)--Gadgets 1.1 1. 前言 2. 功能实现 2.1 主程序界面 2.1.1 标签与按钮 2.1 ...

  5. Python小工具之翻译词典

    Python小工具之翻译词典 功能实现:请求网易有道词典的接口,获取翻译结果 代码如下: # -*- coding:utf-8 -*- """ Python制作翻译词典 ...

  6. Python小工具——唐诗三百首朗读

    Python小工具--唐诗三百首朗读 工具简介 系统语音朗读唐诗三百首,可自己选择要朗读的唐诗,可搜索查找唐诗进行朗读,可用于幼儿园或小学生熟悉唐诗,积累文学素养. 工具界面 1.打开工具 可查看当前 ...

  7. 自制python小工具(2)——Gadgets 0.2

    自制python小工具(2)--Gadgets 0.2 文章目录 自制python小工具(2)--Gadgets 0.2 1. 前言 1.1 上篇 2. Gadgets 0.2更新功能介绍 3. Ga ...

  8. python小工具myqr生成动态二维码

    python小工具myqr生成动态二维码 (一)安装 (二)使用 (一)安装 命令: pip install myqr 安装完成后,就可以在命令行中输入 myqr 查看下使用帮助: myqr --he ...

  9. 【Python小工具】若干图片合并生成动态图(.gif)

    相信很多学生党.上班族在日常的学习.科研.办公中总会有一些比较特殊的需求,本人作为一个理工科(非计算机相关专业)学生和大家一样.有时好不容易找到了比较心仪的工具,却发现还要收费,质量和使用的便捷性也不 ...

最新文章

  1. Spring Cloud(七)服务网关 Zuul Filter 使用
  2. 给大家介绍一位中科院师兄,读研时通过实习和比赛收入五十万
  3. 10万视频,所有图像均获授权,Facebook创建大规模Deepfake数据集
  4. java服务端开发 php_PHP使用thrift做服务端开发
  5. POJ 2075 Tangled in Cables
  6. 64位 linux 32位连接器,意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境...
  7. OSPF高级特性——LSA-3(Network Summary LSA)的过滤、路由协议——管理距离的修改、外部路由的metric值的修改
  8. IDM(Internet Download Manager)下载各类安装包(github代码、python包)、软件、视频、文档的神器,居家必备良药
  9. 结对-贪吃蛇游戏-测试过程
  10. 智能电视或将掀起IT产业新一轮狂潮
  11. 反需求函数和边际收益_[转载]关于所谓反需求函数
  12. Weblogic缓存清理
  13. 系统更新后出现dll文件丢失问题
  14. 陈文俊 计算机科学,2019年丘成桐中学科学奖总决赛获奖结果揭晓!
  15. 《概率论与数理统计》再学习之事件的互斥(互不相容)和独立的关系
  16. [网易IM通讯]推送小结
  17. tf.multiply()
  18. python读取文件并复制文件
  19. K8S组件介绍及安装
  20. Basler Blaze-101开发实践(1)——实时采图

热门文章

  1. keil .sct 文件的理解
  2. [架构设计] 创建型模型
  3. VScode如何恢复误删文件
  4. 英集芯ip6806无线充电方案5W过Qi认证外围精简14颗器件
  5. 退换货通道不关闭,买家笑,卖家哭?
  6. 上海市考 计算机类岗位,2021年上海市公务员考试职位分析,法学类专业报考优势大...
  7. linux下netflow软件,NetFlow Analyzer下载
  8. 下载淘宝教育视频的方法
  9. Stateflow使用C语言结构体,关于使用Stateflow调用外部C代码的教程介绍
  10. 噪声与振动控制行业的发展和展望