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

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

1.什么是Web API

Web API是网络应用程序接口,包含了广泛的功能,其中的大部分均可以通过API(应用程序编程接口)访问.现在的网络上,有大量的Web服务和应用,会给我们提供各种各样的服务,比如国外的Yahoo,Google,国内的百度,阿里都有大量的API可以让我们调用

一般返回的数据是以JSON格式为主(CSV,XML也可以),大部分都需要提供key和secret来保证其使用的安全性

而且有一些API的访问是比如违章啊,快递查询,按照次数收费的

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

目的地的旅游景点

目的地的美食

目的地的好玩的

2.申请百度开发者账号

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

然后再去申请一个密钥

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

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

3.天气查询程序

1).构造天气查询URL

需要填入申请的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']

运行一下程序:

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

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

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

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

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

pprint(places_dicts),type(places_dicts)

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

3).运行一下程序

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

输入:

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

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

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

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

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

历史人气文章

python开发一个web项目得需要多少行代码_用Python写个迷你出门问问|10几行代码搞定...相关推荐

  1. 如何用python写查询名字程序_用Python写个迷你出门问问|10几行代码搞定

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

  2. asp.net web开发框架_用Python开发一个Web框架

    一.Web框架 首先我们今天要做的事是开发一个Web框架.可能听到这你就会想.是不是很难啊?这东西自己能写出来? 如果你有这种疑惑的话,那就继续看下去吧.相信看完今天的内容你也能写出一个自己的Web框 ...

  3. python编程计算器_Python学习笔记:用Python开发一个计算器项目

    最近抽空看了下python的学习文档,发现开发工具以及资料支持对开发者相当的友好,相比之下,以前用TCL&Tk做的项目主要缺点有两个:1,开发难度大,调试手段只有靠print一种,而且语法错误 ...

  4. 如何用Jsp开发一个web项目

    我最近用jsp代码来实现web项目,jsp虽然在应用中不是特别流行,但是用起来还是比较方便的,我总结了两种jsp通过网页上修改数据实现在数据库中的数据的增删改. 首先简单的介绍一下jsp:JSP(全称 ...

  5. 用python设计一个简易的英汉互译界面_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...

    距离上次写使用python一步一步搭建微信公众平台(一)已经有几个月了,当中自已也搭建了一个中英文互译的小应用,可是由于英文翻中文好弄,中文翻译成英文一直有问题,知道是编码的问题,但是一直搞不定,于是 ...

  6. python中一个字符视为长度为1的字符串_【Python】笔试题知识点小结(1)

    题目来源:牛客网 今天开始复习巩固一下基础知识点- 蓝色表示题干,红色表示答案,黑色表示知识点. 1.下列代码的运行结果是? print 'a' < 'b' < 'c'True 1)pyt ...

  7. python生成一个包含20个随机整数的列表_在python中,如何生成一个范围内的随机整数,不包括列表中的一些数字?...

    您可以使用函数将整数范围映射到相同的整数范围,但有例外,如下所示:import random def excection(val, exceptions): ''' Maps range of val ...

  8. Python开发一个股票类库

    前言 使用Python开发一个股票项目.  项目地址:  https://github.com/pythonstock/stock  相关资料:  http://blog.csdn.net/freew ...

  9. python开发的著名软件公司_软件开发公司_软件外包_项目外包平台基于Python开发一个全文检索系统...

    基于Python开发一个全文检索系统.功能要求为: 使用全文检索引擎对文本进行检索.文本的格式为Word.PDF.TXT. 同时按数据域进行复合条件检索.数据域指文本对应的信息,例如创建人.文件编号. ...

最新文章

  1. python类的继承--------类的基础(四)
  2. NetBeans IDE 7.0 Beta 发布
  3. 【公司金融课堂学习笔记】2、企业融资—风投如何影响企业价值
  4. 计划策略-20-订货型生产
  5. 微服务框架Go-Micro集成Nacos实战之服务注册与发现
  6. 使用GoldenGate进行平台迁移和数据库升级(9i-11g)步骤描述
  7. junit 预期错误_谨慎使用JUnit的预期异常
  8. 学习嵌入式和单片机有没有必要,价值体现在哪
  9. Python进阶(一)Python中的内置函数、内置方法、私有属性和方法详解
  10. larvel mysql count,Laravel带条件查询多个count
  11. 熟练运用计算机的重要性,计算机*实习目的和意义
  12. 搭建一个个人网站需要多少钱预算?
  13. JavaMail实现邮件的发送
  14. 数字化转型浪潮 金融科技公司如何扮演“引路人“角色?
  15. (CodeForce) C. Edgy Trees (并查集)
  16. 【人工智能】新一代人工智能发展白皮书
  17. Kafka源码分析10:副本状态机ReplicaStateMachine详解 (图解+秒懂+史上最全)
  18. 2021年终总结,我躺平了
  19. scipy butter 滤波器实现
  20. 西湖,一首荡漾千年的华章

热门文章

  1. PYTHON BZ2 安装
  2. springboot 中动态切换数据源(多数据源应用设计)
  3. 1.43 亿人信息被盗,整个美国都慌了;Linux 发行版 SUSE 诞生 25 周年
  4. requests模块02
  5. 如何用在自己的网页中嵌入腾讯视频网页播放器播放一些文件
  6. 【渝粤题库】陕西师范大学152113 统计学 作业
  7. 未来5年内, UWB技术或将成为室内定位的主流技术!
  8. 丁益祥c语言答案pdf,丁益祥|
  9. 关于mail mailx 以及sendmail 的理解
  10. ADODB 入门(推荐)