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 相关文章推荐
Django学习笔记之Class-Based-View
Feb 15 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
Python实现FM算法解析
Jun 18 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
python3.x 生成3维随机数组实例
Nov 28 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
Python如何用filter函数筛选数据
Mar 05 Python
详解python中groupby函数通俗易懂
May 14 Python
Django Model中字段(field)的各种选项说明
May 19 Python
python产生模拟数据faker库的使用详解
Nov 04 Python
python中的测试框架
Nov 13 Python
python3操作redis实现List列表实例
Aug 04 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
PHP5常用函数列表(分享)
2013/06/07 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
网站上面有这种切换效果
2006/06/26 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python机器学习之KNN分类算法
2018/08/29 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
Django REST framework内置路由用法
2019/07/26 Python
Python进度条的制作代码实例
2019/08/31 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
Python __slots__的使用方法
2020/11/15 Python
医药个人求职信范文
2014/01/29 职场文书
机关办公室岗位职责
2014/04/16 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
经营理念标语
2014/06/21 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
商标侵权律师函
2015/05/27 职场文书
门卫管理制度范本
2015/08/05 职场文书
思想品德课教学反思
2016/02/24 职场文书
Python进度条的使用
2021/05/17 Python