知行编程网知行编程网  2022-03-04 07:00 知行编程网 隐藏边栏 |   抢沙发  5 
文章评分 0 次,平均分 0.0

这是菜鸟学Python的第71篇原创文章

阅读本文大概需要5分钟

 

        上一篇讲了JSON文件的用法,小伙伴们感觉好像写的很不过瘾,后台有好几个小伙伴问我能不能再写一篇,其中还有两个小伙伴给我留言,问我什么是Web Api,好今天我会解释一下,同时利用百度开放的API写一个简单的出门问问,算是进一步趣味学JSON文件.

 

 

1.什么是Web API

Web API是网络应用程序接口,包含了广泛的功能,其中的大部分均可以通过API(应用程序编程接口)访问.

  • 现在的网络上,有大量的Web服务和应用,会给我们提供各种各样的服务,比如国外的Yahoo,Google,国内的百度,阿里都有大量的API可以让我们调用
  • 一般返回的数据是以JSON格式为主(CSV,XML也可以),大部分都需要提供key和secret来保证其使用的安全性
  • 而且有一些API的访问是比如违章啊,快递查询,按照次数收费的

 

用Python写个迷你出门问问|10几行代码搞定

 

今天我们就来写一个迷你版的出门问问的小程序,出门问问最主要的需要提供:

  • 目的地的天气
  • 目的地的旅游景点
  • 目的地的美食
  • 目的地的好玩的

 

2.申请百度开发者账号

1).调用百度Web API 之前,先要去申请一个开发者的账户:

http://lbsyun.baidu.com/apiconsole/key

用Python写个迷你出门问问|10几行代码搞定

然后再去申请一个密钥

 

用Python写个迷你出门问问|10几行代码搞定

 

2).创建应用,填入一些资料

用Python写个迷你出门问问|10几行代码搞定

 

我们可以选择最简单的微信小程序 应用类型,然后提交之后就会获得一个key

用Python写个迷你出门问问|10几行代码搞定

 

3.天气查询程序

1).构造天气查询URL

用Python写个迷你出门问问|10几行代码搞定

需要填入申请的key和城市名字(中文,拼音都可以)

 

2).利用requests模块取获取网站上的数据

import request

response=requests.get(url)

weather_dicts=response.json()

 

我们把网站的JSON数据转化成字典,但是JSON数据很复杂,嵌套非常多,一坨一坨的。为了解决这个问题,我建议大家最好用pprint模块

 

3).利用pprint模块

这个号称Python里面的美观打印机,可以用于生成数据结构的一个美观视图。让人可以非常直观清晰的看到这个数据的结构,非常方便,而且还会把键值按照字母排序,真是是居家旅行必备啊~~

pprint(weather_dicts)

 

4).显示天气信息

所有的天气信息都在weather_dicts下面的result键值下面(大家运行一下pprint(weather_dicts)就看的很清楚了),而这个result又是一个巨大的列表,列表里面有一个字典,这个字典包含了城市名,PM2.5,未来4天的天气数据等等.

 

幸好有pprint,不然看的头都晕, 我们只需要提取一些重要的信息就可以了.

weather_data=weather_dicts['results'][0]['weather_data']

print weather_dicts['results'][0]['currentCity']

for each_item in weather_data:

print each_item['date']

print each_item['temperature']

print each_item['weather']

print each_item['wind']

 

运行一下程序:

用Python写个迷你出门问问|10几行代码搞定

 

啊呀是不是很爽,上海4天的天气都出来了.我们可以在程序的入口加一个city参数,这样可以获取全国各地的天气,比如你输入北京,广州,武汉,青岛...

 

4.查询热门城市旅游景点,美食,好玩的

下面我们再来增加一个功能,就是查询热门城市的一些信息,比如我们去哪里玩,想查一些饭店,酒店的信息,有那些好玩的,好吃的~~,代码跟查询天气很类似

 

1).同样构造查询Place的URL

 

用Python写个迷你出门问问|10几行代码搞定

 

2).用pprint模块打印一些数据结构,然后获取信息

pprint(places_dicts),type(places_dicts)

用Python写个迷你出门问问|10几行代码搞定

 

这里加了一些判断条件,因为有一些饭店或者景点不一定有电话和地址,所以在获取之间,先判断一下key在不在字典里面,不然会报错的

 

3).运行一下程序

search_place(hot_place="旅游",city="上海")

 

用Python写个迷你出门问问|10几行代码搞定

输入:

search_place(hot_place="饭店",city="上海")

search_place(hot_place="好吃的",city="上海")

会返回上海的一些饭店信息和好吃的资料

 


Python做个迷你的出门问问就讲到这里,是不是觉得蛮好玩的,其实上面的代码还是比较糙的,只是抛砖引玉,有兴趣的同学可以动手试一下,而且利用微信的接口可以做一个更全更好玩的出门问问,今天的文章希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

 

 

ZZS

 

优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。


欢迎大家关注 菜鸟学Python",更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python

 

历史人气文章

 

Python语言如何入门

同学,学Python真的不能这样学

用Python写个弹球的游戏

Python写个迷你聊天机器人|生成器的高级用法

用Python破解微软面试题|24点游戏

2道极好的Python算法题|带你透彻理解装饰器的妙用

一道Google的算法题 |Python巧妙破解

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享