车联网 python_利用百度车联网提供的天气查询接口用python查询天气信息

(1)程序查询结果图(图中较下的图是百度查询天气的结果)

(2)http://developer.baidu.com/map/carapi-7.htm 百度车联网接口说明中有天气查询的接口,目前是免费提供的(一天可以查询5000次)

下表是接口返回的json数据。(表中##及后内容是为了方便的查看数据填写的)

{‘date‘: ‘2015-03-24‘, ‘error‘: 0,

##&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&begin results

‘results‘:

[

{

‘pm25‘: ‘95‘,

##begin index

‘index‘:

[

{‘des‘: ‘建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。‘, ‘tipt‘: ‘穿衣指数‘, ‘zs‘: ‘较冷‘, ‘title‘: ‘穿衣‘},

{‘des‘: ‘较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。‘, ‘tipt‘: ‘洗车指数‘, ‘zs‘: ‘较适宜‘, ‘title‘: ‘洗车‘},

{‘des‘: ‘天气较好,风稍大,但温度适宜,是个好天气哦。适宜旅游,您可以尽情地享受大自然的无限风光。‘, ‘tipt‘: ‘旅游指数‘, ‘zs‘: ‘适宜‘, ‘title‘: ‘旅游‘},

{‘des‘: ‘昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。‘, ‘tipt‘: ‘感冒指数‘, ‘zs‘: ‘较易发‘, ‘title‘: ‘感冒‘},

{‘des‘: ‘天气较好,但因风力稍强,户外可选择对风力要求不高的运动,推荐您进行室内运动。‘, ‘tipt‘: ‘运动指数‘, ‘zs‘: ‘较适宜‘, ‘title‘: ‘运动‘},

{‘des‘: ‘属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。‘, ‘tipt‘: ‘紫外线强度指数‘, ‘zs‘: ‘中等‘, ‘title‘: ‘紫外线强度‘}

],

##///end index

##..........................................................begin weather_data 今天起的4天气候

‘weather_data‘:

[

{‘nightPictureUrl‘: ‘http://api.map.baidu.com/images/weather/night/qing.png‘, ‘weather‘: ‘晴‘, ‘temperature‘: ‘3℃‘, ‘date‘: ‘周二 03月24日

(实时:15℃)‘, ‘wind‘: ‘微风‘, ‘dayPictureUrl‘: ‘http://api.map.baidu.com/images/weather/day/qing.png‘},

{‘nightPictureUrl‘: ‘http://api.map.baidu.com/images/weather/night/qing.png‘, ‘weather‘: ‘晴‘, ‘temperature‘: ‘18 ~ 6℃‘,

‘date‘: ‘周三‘, ‘wind‘: ‘南风3-4级‘, ‘dayPictureUrl‘: ‘http://api.map.baidu.com/images/weather/day/qing.png‘},

{‘nightPictureUrl‘: ‘http://api.map.baidu.com/images/weather/night/qing.png‘, ‘weather‘: ‘晴‘, ‘temperature‘: ‘20 ~

8℃‘, ‘date‘: ‘周四‘, ‘wind‘: ‘微风‘, ‘dayPictureUrl‘: ‘http://api.map.baidu.com/images/weather/day/qing.png‘},

{‘nightPictureUrl‘: ‘http://api.map.baidu.com/images/weather/night/yin.png‘, ‘weather‘: ‘多云转阴‘, ‘temperature‘: ‘22

~ 10℃‘, ‘date‘: ‘周五‘, ‘wind‘: ‘南风3-4级‘, ‘dayPictureUrl‘: ‘http://api.map.baidu.com/images/weather/day/duoyun.png‘}

],

##............................................................end weather_data

‘currentCity‘: ‘北京‘}

],

##&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&end results

‘status‘: ‘success‘

}

import json

import urllib.request

import urllib.parse

url0 = 'http://api.map.baidu.com/telematics/v3/weather'

url ='http://api.map.baidu.com/telematics/v3/weather?location=北京&output=json&ak=yourkey'

url1 ='https://www.python.org/'

###最简单的方式

##response = urllib.request.urlopen(url1)

##buff = response.read()

##html = buff.decode('utf8')

##response.close()#记得关闭

##print(html)

###使用Request的方式,这种方式同样可以用来处理其他URL,例如FTP:

##import urllib.request

##req = urllib.request.Request(url1)

##response = urllib.request.urlopen(req)

##buff = response.read()

###显示

##the_page = buff.decode('utf8')

##response.close()

##print(the_page)

#使用GET请求

#例子中用到百度车联网中提供的天气查询api接口:

#http://api.map.baidu.com/telematics/v3/weather?location=北京&output=json&ak=yourkey

#http://api.map.baidu.com/telematics/v3/weather?location=北京&output=json&ak=yourkey

#decode('gb2312')

name1=input('请输入城市:')

#url1 = 'http://api.map.baidu.com/telematics/v3/weather?location='+name1+'&output=json&ak=yourkey'

#print(url1)

data = {'location':name1,

'output':'json',

'ak':'RehcDwqFhr77yNTZVGKPA45U'}#ak后面的值是我在百度上申请的key

url_values = urllib.parse.urlencode(data)

full_url = url0 + '?' + url_values

#print(full_url)

f = urllib.request.urlopen(full_url)

weatherHTML= f.read().decode('utf-8')#读入打开的url

weatherJSON = json.JSONDecoder().decode(weatherHTML)#创建json

#print(weatherHTML)

#print(weatherJSON)

print('========================')

results = weatherJSON['results']

print("当前城市:",results[0]['currentCity'])

#当天的天气建议

index = results[0]['index']

for each_index in index:

print(each_index['title'],":",each_index['zs'])

weather_data =results[0]['weather_data']

for each_data in weather_data:

print("时间:%s 天气:%s 温度:%s 风力:%s" %(each_data['date'],each_data['weather'],each_data['temperature'],each_data['wind']))

import os

os.system('pause')

原文:http://blog.csdn.net/lxz26192/article/details/44618491

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle入门(六)之用户操作

定义:也叫方案,是一组逻辑对象的所有者。 验证方式:数据库验证和操作系统验证。 表空间和临时表空间:表空间为用户创建数据对象的存储表空间;临时表空间用于创建临时段。空间分配:表空间中,必须…

使用VS2015进行C++开发的6个主要原因

在今年的Build大会上,进行了“将你的C代码转移至VS2015的6个原因”的演讲,其中探讨了VS2015中对于C开发者们更有用的新功能。自从它在2015年七月的第一次发布后,VS2015一直在完善,并且比起对它的启动状态而言,它的两个…

Oracle入门(八)之权限

定义:控制用户在数据库中所能进行的操作权限 分类:系统权限和对象权限 一、系统权限 系统权限(system Privilege):允许执行一组特定的命令CREATE SESSION 创建会话CREATE/DROP USER 创建用户CREATE/DROP VIEW 创建视图CREATE/DROP SEQUENCE 创…

window批处理命令启动nginx

【README】 本文阐述了编写window批处理命令启动,停止nginx; 【1】启动nginx 文件: nginx-start.bat d: cd d:\temp\nginx nginx -s stop taskkill /im nginx.exe /f ping 127.0.0.1 -n 3 -w 1000 > nul start nginx pause 补充&#…

arm芯片厂家排名_国产芯片目前至少有10种,其中有3种,达到了世界顶尖水平

说起来,中国芯的发展史称得上是一部磨难史,因为技术、设备、人才等都被西方国家封锁,就是为了让中国这个大市场巨额进口芯片。但这些年,中国的企业也没有闲着,可以说把世界上的主流的芯片架构尝试了个遍,就…

Oracle入门(十)之概要文件

一、概要文件作用 (1)功能控制用户对系统和数据库资源的使用,保证系统正常运行,防止用户消耗大量资源造成的系统性能下降。 (2)方法设置预定义资源参数。这些参数包含在概要文件中,如果没有为用…

ASP.NET跨平台实践:无需安装Mono的Jexus“独立版”

在Linux上运行ASP.NET网站或webapi的传统步骤一般是先安装libgdiplus,再安装mono,然后安装Jexus。在这个步骤中,安装Jexus非常简单,而安装mono就相对的比较费时费力了。 为了克服务安装Mono这个过程的繁琐,方便大家把A…

5.cpu管理的直观想法

【README】 本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 本文主要介绍了操作系统管理cpu的大致内容; 【1】操作系统管理硬件 1) 多进程管理视图: cpu 管理,内…

python基础教程zip密码_python基础教程Python实现加密的RAR文件解压的方法(密码已知)...

博主之前在网上找了很多资料,发现rarfile库不能直接调用,需要安装unrar模块,下面将详细介绍整个实现流程。第一步:安装unrar模块,直接pip install unrar可能会找不到库,需要下载unrar library,也就是UnRAR.…

Oracle入门(九)之用户、角色与权限之间关系

转载自 Oracle 用户,角色,权限等权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限。Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单…

Windows原生运行Linux的技术细节

Microsoft最近宣布了将Linux Bash与Windows 10进行集成的意图,通过这种集成,Windows 10用户将能在操作系统中原生运行Linux ELF64二进制程序。为避免对该技术的实现方法产生错误的猜测,Windows Subsystem for Linux团队主管Deepu Thomas详细介…

6.操作系统多进程图像

【README】 本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 多进程图像定义:多个进程使用cpu的图像; 多进程图像是操作系统的核心图像; 【1】概述 1) PCB&#xf…

骞云科技 python_骞云科技SmartCMP6.0版本正式发布!

骞云科技作为业内领先的云管理平台及服务提供商,秉持着强力助推企业客户全面提升IT管理水平的理念。历时106天的精细打磨,涵盖110个新功能用户故事,倾注上百位研发、产品、测试小伙伴的心血投入,累计完成4343次代码提交&#xff0…

Oracle入门(五E)之讲解show parameter命令模糊查询

转载自 讲解Oracle show parameter命令的小技巧Oracle参数查询命令show parameter的一个小技巧,可以使用模糊查询,比如我想查询包含db_的参数,那么我就可以用: SQL> show parameter db_; NAME TYPE VALUE --------------------…

.NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践

晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper,花了10分钟简单了解了一下。 看评论也是挺有价值,同时也看到许多新手同学问道在实际项目中使用的情况。 下面就原作者的代码的基础上略作调整…

myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...

在主窗口中放置多个控件,最好的方法是使用布局。控件的布局是学习PyQt路上比较关键也也是比较难理解的部分,赶快跟着木辛老师一起去看看吧。请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程知识,变身快乐的编程达…

7.用户级线程

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 2.本文会介绍进程与线程的区别,线程切换,用户态线程,内核级线程等; 【1】多进程回顾 问题&#xff1a…

Oracle入门(五D)之如何设置show parameter显示隐含参数

转载自 oracle如何设置show parameter显示隐含参数在sqlplus中show parameter是显示不了隐藏参数的,需要做一个处理,如下所示: 以SYS用户登录: C:\Documents and Settings\guogang>sqlplus / as sysdba; SQL> create or r…

使用VS Code 从零开始开发并调试.NET Core 应用程序

使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试。上一篇 使用VS Code开发 调试.NET Core 应用程序 得到了大家的支持。 现在为大家带来从零开始教程,让你更好的了解.NET Core 应用程序。使用VS Code 开发C# 程序 并调试程序。 并且也会解决上…

8.内核级线程(核心级线程)

【README】 1.本文内容总结自 B站 《操作系统-哈工大李治军老师》,内容非常棒,墙裂推荐; 2.为什么要讲线程呢。实际要讲进程的切换;进程的切换包括切换指令,切换资源;切换指令就是切换线程(简…