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中除法使用的注意事项
Aug 21 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
Python基本socket通信控制操作示例
Jan 30 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
Django网络框架之HelloDjango项目创建教程
Jun 06 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
详解python中各种文件打开模式
Jan 19 Python
简单了解Python多态与属性运行原理
Jun 15 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
jcrop基本参数一览
2013/07/16 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
JS回调函数深入理解
2019/10/16 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
python实现二维码扫码自动登录淘宝
2016/12/27 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python实现大文本文件分割
2019/07/22 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
Python多线程正确用法实例解析
2020/05/30 Python
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
大学生怎样进行自我评价
2013/12/07 职场文书
高中历史教学反思
2014/02/08 职场文书
支部组织生活会方案
2014/06/10 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python