![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第1页](http://m.enxinlong.com/img-preview/2/14/14315130/0/0.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第2页](http://m.enxinlong.com/img-preview/2/14/14315130/0/1.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第3页](http://m.enxinlong.com/img-preview/2/14/14315130/0/2.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第4页](http://m.enxinlong.com/img-preview/2/14/14315130/0/3.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第5页](http://m.enxinlong.com/img-preview/2/14/14315130/0/4.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第6页](http://m.enxinlong.com/img-preview/2/14/14315130/0/5.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第7页](http://m.enxinlong.com/img-preview/2/14/14315130/0/6.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第5课 查询天气 课件第8页](http://m.enxinlong.com/img-preview/2/14/14315130/0/7.jpg?x-oss-process=image/resize,w_794/sharpen,100)
所属成套资源:粤高教版(2018)信息技术八年级下学期PPT课件+教学设计全套
粤高教版八年级下册信息技术第2单元第5课 查询天气 课件
展开
这是一份粤高教版八年级下册信息技术第2单元第5课 查询天气 课件,共38页。
第 5 课 查询天气 ——requests 库和 json模块的应用广东高等教育出版 第八册下 新知导入图 2-5-1 天气预报新知讲解快门乐新知讲解交流 我们可以通过电视、手机、报纸、上网查询等途径查询天气;关注温度、湿度、风力、风向太阳照射强度等新知讲解一、分析问题 本课的任务是编写程序查询制定城市的天气情况。程序要解决的关键问题:一是如何到指定的天气网站获取数据;二是如何筛选出需要的天气数据,并按日常习惯表达出来。新知讲解 要解决以上问题,在程序中需要利用以下两个库(模块) (1)利用requests库向气象网站发送请求,获取天气数据 (2)利用json模块将获取的天气数据转换成便于Python处理的数据格式新知讲解新知讲解 上网了解有哪些网站提供API数据接口:实践百度百科:http://baike.baidu.com/api/openapi/BaikeLemmaCardApi?scope=103&format=json&appid=379020&bk_key=关键字&bk_length=600气象局:http://m.weather.com.cn/data/101010100.html爱奇艺:http://cache.video.iqiyi.com/jp/avlist/202861101/1/?callback=jsonp9新知讲解二、学习新知(一)requests库 pip install requests import requests 新知讲解 requests 库获取的数据对象包含多个属性,分别表示网页不同的信息。例如,向Python官网发送请求,并打印多项页面信息的代码如下:新知讲解#getpython.pyimport requests#使用requests库的get函数向指定网址发送请求,返回数据respresp= requests.get(‘http://www.python.org/’)Print(resp.text) #打印网页的页面内容#打印请求的返回状态,200表示连接成功,404表示失败print(resp.status_code)新知讲解实践新知讲解表2-5-1 反馈数据的部分属性说明新知讲解(二)json模块新知讲解 import json json莫快递包含在标准库中,导入该模块的命令如下:新知讲解 json模块包含多个函数,其中:(1)json.dumps(),表示将Python对象转换成JSON格式的数据(2)json.loads(),表示将JSON格式字符串形式数据转换成Python对象 例如,将JSON格式的数据a转换成Python对象存到b中的代码如下:b=json.loads(a)新知讲解三、设计算法根据前面分析,查询天气的算法思路如下:1、导入requests库以及json模块2、输入查询城市名city3、发送网络请求,获取天气数据response4、将response.txet转换成Python对象,并保存到weather中5、判断天气数据是否获取成功,成功则输出天气数据。否则输出“没有该城市的天气数据”新知讲解四、编写程序(一)获取天气数据根据前面的算法,获取天气数据的代码如下:#weather.pyimport rsquests,jsoncity=input('请输入要查询的城市')#将加上城市名的API接口网址存到url中\url='http://wthrcdn.etouch.cn/weather_mini?city='+city#发送网络请求,获取天气数据存到response中response=requests.get(url)#将JSON格式的数据转换成Python对象存到weather中weather=json.loads(response.text)新知讲解新知讲解探究 在程序weather.py最后加上一行代码‘print(weather)’。运行程序,输入你所在的城市(如图2-5-2所示),观察输出的天气数据提供了哪些信息?新知讲解图 2-5-2新知讲解(二)输出天气数据分析图2-5-2可知,从网络中获取的天气数据包含了多项内容,但这些数据难于直观看出天气的各项指标。我们可以逐项提取数据,再按整齐的格式显示出来,方便阅读。新知讲解weather[‘数据项名称’]表示weather中的某项数据,书写格式如下:1、weather[‘desc’]是查询结果标志,如果查询城市存在,则weather[‘desc’]的值为“OK”,否则为“invilad-citykey”。新知讲解2、 weather[‘data’]是详细的天气数据,里面包含4项数据依次为:(1)weather[‘data’][‘yesterday’]:昨日天气(2) weather[‘data’][‘forecast’][0]:今日的天气; weather[‘data’][‘forecast’][1]:明日的天气,如此类推(3) weather[‘data’][‘ganmao’]:感冒概率(4) weather[‘data’][‘wendu’]:当前温度新知讲解weather[‘data’][‘forecast’][0]包含有五个子项内容,它们分别表示哪些气象指标?‘data’:_________ ;’high’:___________ ;‘fengli’:________ ;’low’:_________ ;‘fengxiang’:____________观察日期高温风力低温风向新知讲解if weather [‘desc’]==‘OK’: #判断输入的城市是否存在 today=weather[‘data’][‘forecast’][0] #将当天的天气数据存到today中在程序weather.py基础上,删除最后一行代码‘print(weather)’,然后补充以下代码,观察输出了哪些天气数据。要输出更多天气数据,该如何修改程序?实践新知讲解print(city+’今日’+today[‘high’],today[‘low’],today[‘fengxiang’],today[‘type’]) print(‘当前温度:’+weather[‘data’][‘wendu’]+℃’) #输出当天的感冒概率else: print(‘没有该城市的天气数据’)新知讲解实践与创作 利用百度提供的查询手机号码归属地的API接口,编写程序查询手机号码的归属地,按如图2-5-3所示输出查询结果。API接口网址为:http://mobsec-dianhua.baidu,com/dianhua_api/open/location?tel=手机号码新知讲解检测与评估1、用于发送网络请求的库是( ) A.random B.matplotlib C.json D.requests拓展新知D2、将JSON格式的数据a转换成Python对象的语句是( ) A、b=json.load(a) B、b=json.loads(a) C、b=json.dump(a) D、b=json.dumps(a)拓展新知B3、以下说法错误的是( ) A、requests库属于扩展库,需要先安装才能使用 B、json模块属于扩展库,需要先安装才能使用 C、表达式“4+5”的结果是“45” D、json模块能将Python对象与JSON格式的数据进行相互转换拓展新知B4、请完善下列程序,使程序能够输出所获取的页面内容拓展新知#getbaidu.py__________________resp=requests.get('http://www.baidu.com/')resp.encoding='utf-8' #将反馈内容的编码格式转换为utf-8_________________________拓展新知import requestsprint(resp.encoding) 5、完成表2-5-2的学习评估,并将评估等级填写到“我的成长记录袋”中。拓展新知拓展新知表2-5-2 学习评估表课堂总结一、requests库和json模块的运用二、提取weather中的某项数据 weather['数据项名称']板书设计一、分析问题二、学习新知 (一)requests库 (二) json库三、设计算法四、编写程序 (一)获取天气数据 (二)输出天气数据
![文档详情页底部广告位](http://m.enxinlong.com/img/images/257d7bc79dd514896def3dc0b2e3f598.jpg)