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学习笔记之常用函数及说明
May 23 Python
Python语言的12个基础知识点小结
Jul 10 Python
python base64 decode incorrect padding错误解决方法
Jan 08 Python
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
如何在django中添加日志功能
Feb 06 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
python中rc1什么意思
Jun 19 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中生成随机密码的自定义函数代码
2013/10/21 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
简单了解python反射机制的一些知识
2019/07/13 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
应届生财务会计求职信
2013/11/05 职场文书
小学生元旦感言
2014/02/26 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python