Python实现从百度API获取天气的方法


Posted in Python onMarch 11, 2015

本文实例讲述了Python实现从百度API获取天气的方法。分享给大家供大家参考。具体实现方法如下:

__author__ = 'saint'

import os

import urllib.request

import urllib.parse

import json

class weather(object):

    # 获取城市代码的uri

    code_uri = "http://apistore.baidu.com/microservice/cityinfo?cityname="

    # 获取天气信息的uri

    weather_uri = "http://apistore.baidu.com/microservice/weather?cityid="

    # 主处理逻辑

    def mainHandle(self):

        print("输入你要查询的天气:")

        city_name = input()

        uri = self.code_uri + urllib.parse.quote(city_name)

        ret = json.loads(urllib.request.urlopen(uri).read().decode("utf8"))

        if ret['errNum'] != 0:

            print(ret['retMsg'])

            return False

        else:

            weather_uri = self.weather_uri + ret['retData']['cityCode']

            data = json.loads(urllib.request.urlopen(weather_uri).read().decode("utf8"))

            if data['errNum'] == 0:

                ret_data = data['retData']

                output = "城市名:" + city_name + "\r\n"

                output += "更新时间:" + ret_data["date"] + " " + ret_data["time"] + "\r\n"

                output += "天气:" + ret_data["weather"] + " [" + ret_data["WD"] + ret_data["WS"] + "]\r\n"

                output += "当前温度:" + ret_data["temp"] + " (" + ret_data["h_tmp"] + " ---> " + ret_data["l_tmp"] + ")\r\n"

                print(output)

                return True

            else:

                print(data['errMsg'])

                return False

if __name__ == "__main__":

    weather = weather()

    weather.mainHandle()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python人人网登录应用实例
Sep 26 Python
替换python字典中的key值方法
Jul 06 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
python3 线性回归验证方法
Jul 09 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
python的scipy实现插值的示例代码
Nov 12 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
python微信公众号开发简单流程实现
Mar 09 Python
使用K.function()调试keras操作
Jun 17 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
python单元测试框架pytest的使用示例
Oct 07 Python
用python实现一个简单的验证码
Dec 09 Python
Python计算回文数的方法
Mar 11 #Python
Python用GET方法上传文件
Mar 10 #Python
Python爬取读者并制作成PDF
Mar 10 #Python
Python生成随机MAC地址
Mar 10 #Python
Python中实现结构相似的函数调用方法
Mar 10 #Python
Python实现CET查分的方法
Mar 10 #Python
Python实现的批量下载RFC文档
Mar 10 #Python
You might like
自定义PHP分页函数
2006/10/09 PHP
php的memcache类分享(memcache队列)
2014/03/26 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
python端口扫描系统实现方法
2014/11/19 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
pip install命令安装扩展库整理
2021/03/02 Python
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
战略合作协议书范本
2014/04/18 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS