粵高教版信息技術(shù)八年級(jí)下冊(cè)2-5 查詢(xún)天氣教案_第1頁(yè)
粵高教版信息技術(shù)八年級(jí)下冊(cè)2-5 查詢(xún)天氣教案_第2頁(yè)
粵高教版信息技術(shù)八年級(jí)下冊(cè)2-5 查詢(xún)天氣教案_第3頁(yè)
粵高教版信息技術(shù)八年級(jí)下冊(cè)2-5 查詢(xún)天氣教案_第4頁(yè)
粵高教版信息技術(shù)八年級(jí)下冊(cè)2-5 查詢(xún)天氣教案_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

廣東高等教育版信息技術(shù)八年級(jí)下冊(cè)第二單元第4課教學(xué)設(shè)計(jì)

課題第5課查詢(xún)天氣單元第二單元學(xué)科信息技術(shù)年級(jí)八年級(jí)

1、了解requests庫(kù)的功能。

2、理解利用get()函數(shù)發(fā)送請(qǐng)求后返回對(duì)象的各種屬性。

學(xué)習(xí)

3、掌握利用requests庫(kù)獲取網(wǎng)絡(luò)數(shù)據(jù)的方法。

目標(biāo)

4、掌握利用json模塊轉(zhuǎn)換數(shù)據(jù)格式的方法。

5、初步應(yīng)用requests庫(kù)和json模塊程序進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)查詢(xún)。

重占

八、、掌握利用requests庫(kù)獲取網(wǎng)絡(luò)數(shù)據(jù)的方法。

難點(diǎn)初步應(yīng)用requests庫(kù)和json模塊程序進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)查詢(xún)。

教學(xué)過(guò)程

教學(xué)環(huán)節(jié)教師活動(dòng)學(xué)生活動(dòng)設(shè)計(jì)意圖

導(dǎo)入新課見(jiàn)看圖形。

\tJ**,

頁(yè)報(bào)

\>y

觀(guān)看、欣賞、激發(fā)學(xué)生的學(xué)習(xí)

3思考興趣,了解曰常

M7J

■UjM生活中的查詢(xún)天

山國(guó)行蠲氣數(shù)據(jù)。

wnth?-、迄.1

t

圖2-5-1天氣預(yù)報(bào)

互聯(lián)網(wǎng)上有大量的天氣數(shù)據(jù),如何編寫(xiě)從中查詢(xún)所

i寤的數(shù)據(jù)呢?

7史流:

貨們可以通過(guò)哪些渠道查詢(xún)天氣?查詢(xún)天氣時(shí),你

主要關(guān)注哪些指標(biāo)?

q戈們可以通過(guò)電視、手機(jī)、報(bào)紙、上網(wǎng)查詢(xún)等途徑

萱詢(xún)天氣;關(guān)注溫度、濕度、風(fēng)力、風(fēng)向太陽(yáng)照射

弓星度等

講授新課一、分析問(wèn)題

本課的任務(wù)是編寫(xiě)程序查詢(xún)制定城市的天氣情況。

程序要解決的關(guān)鍵問(wèn)題:進(jìn)行探究,初

一是如何到指定的天氣網(wǎng)站獲取數(shù)據(jù);步了解程序解自主探究,學(xué)生

二是如何篩選出需要的天氣數(shù)據(jù),并按日常習(xí)慣表決的關(guān)鍵問(wèn)理解和掌握。

達(dá)出來(lái)。題。

要解決以上問(wèn)題,在程序中需要利用以下兩個(gè)庫(kù)

(模塊)

(1)利用requests庫(kù)向氣象網(wǎng)站發(fā)送請(qǐng)求,

獲取天氣數(shù)據(jù)

(2)利用json模塊將獲取的天氣數(shù)據(jù)轉(zhuǎn)

換成便于Python處理的數(shù)據(jù)格式

課我們利用中華萬(wàn)年歷網(wǎng)站提供的天氣預(yù)報(bào)API接了解requests

口獲取數(shù)據(jù)。例如,通過(guò)該接口獲取北京的天氣數(shù)庫(kù)、json模塊

據(jù)如下:

/weather_min?city=T匕京

實(shí)踐:

上網(wǎng)了解有哪些網(wǎng)站提供API數(shù)據(jù)接口:

百度百科:

/api/openapi/BaikeLemmaCard

Api?scope=103&format=json&appid=379020&bk_ke

y=關(guān)鍵字&bk」ength=600

氣象局:上網(wǎng)搜索

htlp://m./data/101010100.html了解API數(shù)據(jù)

愛(ài)奇藝:接口

/jp/avlist/202861101/l/?ca

llback=jsonp9

二、學(xué)習(xí)新知

(一)requests庫(kù)

、聽(tīng)講、了解。

利用requests庫(kù)能向網(wǎng)頁(yè)發(fā)送請(qǐng)求從而擷擻

據(jù),requests庫(kù)屬于擴(kuò)展庫(kù)等頹裝;推使甩在

DSO方式中安裝,queps庫(kù)的命令為:了解requests

pipinstallrequests

庫(kù)的用法。

在Python中導(dǎo)入該庫(kù)的命令為:

.importrequests

requests檢取的數(shù)據(jù)對(duì)象包含多個(gè)Itt,

分別表示網(wǎng)頁(yè)不同的信息

蒯,向Pyth。唱峨楠求,用K哆

廁通髓的代碼蝦:

#getpython.py

importrequests

#使用requests庫(kù)的get函數(shù)向指定網(wǎng)址發(fā)送請(qǐng)求,返回?cái)?shù)據(jù)resp

resp=requests.get('/')

Print(resp.text)#打印網(wǎng)頁(yè)的頁(yè)面內(nèi)容

#打印請(qǐng)求的返回狀態(tài),20陵示連接成功,404表示失敗

.print(resp.status.code)

?實(shí)踐:

找一個(gè)你想查詢(xún)的網(wǎng)址,然后在IDLE交互模式下

進(jìn)行操作,觀(guān)察輸出結(jié)果,理解各項(xiàng)屬性的含義。

1.導(dǎo)入requests庫(kù)

操作、實(shí)踐

2.用get()函數(shù)發(fā)送請(qǐng)求,返回?cái)?shù)據(jù)存放到resp

3.再用print()函數(shù)輸出表2-5-1所列的各種屬性

?2-5-1反性犧

屬性實(shí)例描述

HTTP請(qǐng)求的返回狀態(tài),20昧示連接

resp.status.code

成功,404表示失敗

前小toyt反饋內(nèi)容的文本形式,即訪(fǎng)問(wèn)網(wǎng)址的

Resptext頁(yè)面內(nèi)容

Resp.encoding反饋內(nèi)容的編碼格式

resp.content反饋內(nèi)容的二進(jìn)制形式

resp.headers反饋內(nèi)容的頭信息

(二)json模塊

由于從中華萬(wàn)年網(wǎng)獲取的是字符串形式的天氣數(shù)

據(jù)(JSON格式),因此要用json模塊將JSON格

式的數(shù)據(jù)準(zhǔn)換學(xué)1Python的專(zhuān)屬4發(fā)據(jù)格式,才能更方了解json模塊

便進(jìn)行處理。的用法。

jsong^1快遞包含在標(biāo)準(zhǔn)庫(kù)中導(dǎo)入該模塊

的命令如下

學(xué)生聽(tīng)老師講

importjson解,了解json模

模塊包含多個(gè)函數(shù),其中:

json塊。

(1)json.dumps(),表示將Python又域轉(zhuǎn)換施SON格

式的數(shù)據(jù)

(2)json.loads(),表示將JSON格式字符串形式數(shù)據(jù)轉(zhuǎn)

換成Python對(duì)象

例如,將JSON格式的數(shù)據(jù)a轉(zhuǎn)換成Python對(duì)象存到

b中的代碼如下:

b=ison.ldads(a)!

三、設(shè)計(jì)算法

根據(jù)前面分析,查詢(xún)天氣的算法思路如下:

1、導(dǎo)入requests庫(kù)以及json模塊

教師講解,學(xué)

2、輸入查詢(xún)城市名city

生聽(tīng)講,設(shè)計(jì)

3、發(fā)送網(wǎng)絡(luò)請(qǐng)求,獲取天氣數(shù)據(jù)response

查詢(xún)天氣的算

4、將response.txet轉(zhuǎn)換成Python對(duì)象,并保存

法。

至weather中

5、判斷天氣數(shù)據(jù)是否獲取成功,成功則輸出天

氣數(shù)據(jù)。否則輸出“沒(méi)有該城市的天氣數(shù)據(jù)"

四、編寫(xiě)程序

(-)獲取天氣數(shù)據(jù)

#weather.py

importrsquestsjson

(:電引邛以請(qǐng)輸入要查詢(xún)的城市,)

#將加上城市名的API接口網(wǎng)址存到uH中'

url=,/weather_mini?city='+city

#發(fā)送網(wǎng)絡(luò)請(qǐng)求,獲取天啜據(jù)存到response中

response=requests.get(url)

#將心01\!格式的數(shù)據(jù)轉(zhuǎn)換成Python對(duì)象存到weather^

weather=json.loads(response.text)

探究:

在程序weather.py最后加上一行代碼

'print(weather)'。運(yùn)行程序,輸入你所在的城市

(如圖2-5-2所示),觀(guān)察輸出的天氣數(shù)據(jù)提供了

哪些信息?

(-)輸出天氣數(shù)據(jù)

分析圖2-5-2可知,從網(wǎng)絡(luò)中獲取的天氣數(shù)據(jù)包含

了多項(xiàng)內(nèi)容,但這些數(shù)據(jù)難于直觀(guān)看出天氣的各項(xiàng)

指標(biāo)。我們可以逐項(xiàng)提取數(shù)據(jù),再按整齊的格式顯

示出來(lái),方便閱讀。

/X

表示weather中的某項(xiàng)數(shù)據(jù),書(shū)寫(xiě)格式如下:

輸出天氣數(shù)據(jù)

weather['數(shù)據(jù)項(xiàng)名稱(chēng)’]

的格式用法。

1、weather['desc']是查詢(xún)結(jié)果標(biāo)志,如果杳詢(xún)城市存

在,則weather]'desc']的值為"0K",否則為"invilad-

citykey".

2、weather!'data']是詳細(xì)的天氣數(shù)據(jù),里面包含4項(xiàng)

數(shù)據(jù)依次為:

(1)weather['data']['yesterday']:昨日天氣

(2)weather]'data'[「forecast,][0]:今日的天氣;

weather!'data']['forecast'][1]:明日的天氣,如此類(lèi)推

(3)weather]'data']['ganmao']:感冒概率

(4)weather]'data']['wendu']:當(dāng)前溫度

觀(guān)察:

weatherf?data']['forecast'][0]包含有五個(gè)子項(xiàng)

內(nèi)容,它們分別表示哪些氣象指標(biāo)?

'data':日期:,high':一曷:

'fengli':風(fēng)力:'low':低溫:

,fengxiang,:—風(fēng)向

實(shí)踐:

在程序weather.py基礎(chǔ)上,刪除最后一行代碼

,print(weather)1,然后補(bǔ)充以下代碼,觀(guān)察輸出

了哪些天氣數(shù)據(jù)。要輸出更多天氣數(shù)據(jù),該如何修

改程序?

ifweather!'desc']=='OK':#判斷輸入的城市是否存在

today=weather(*data']['forecast'][0]#將當(dāng)天的天氣數(shù)據(jù)存

到today中

print(city+,今

日‘+today[*high'],today[low*],today[*fengxiang*],toda

y[,type,])

print('當(dāng)前溫度:'+weather['data1]['wendu']+℃,)#輸

出當(dāng)天的感冒概率

else:

print('沒(méi)有該城市的天氣數(shù)據(jù)’)

實(shí)踐與創(chuàng)作:

利用百度提供的查詢(xún)手機(jī)號(hào)碼歸屬地的API接

□,編寫(xiě)程序查詢(xún)手機(jī)號(hào)碼的歸屬地,按如圖2-5-3

所示輸出查詢(xún)結(jié)果。API接口網(wǎng)址為:

http://mobsec-dianhua.baidu,com/dianhua_api/open/lo

cation?tel二手機(jī)號(hào)碼

Python-37:?(皿?K7.4?O93591loier20M:20)[itS

Cv.191664*OMD64?]on?in32.

Type-h^ip*,cr?dit?*orfornor?info

?HMtivn.

,:=RESTARTD:\IS序====*===

充毒?京褊機(jī)號(hào)(■入N?出青?)t189?0

廣扁I?電信

清■人夏杳*的手機(jī)號(hào)(“入N退出青t138MBP

廣不廣州&動(dòng)

;清■人要杳中的手機(jī)號(hào)(■入Nii出,12s

看不到或號(hào)碼侑息

清沾入昊奇南的手機(jī)號(hào)(■入N退出青,N

--------圖2-5-3二詢(xún)羊機(jī)鼻碼歸?微—

實(shí)踐與評(píng)估

1、用于發(fā)送網(wǎng)絡(luò)請(qǐng)求的庫(kù)是(D)

A.randomB.matplotlib

C.jsonD.requests

2、將JSON格式的數(shù)據(jù)a轉(zhuǎn)換成Python對(duì)象的語(yǔ)

句是(B)

A、b=json.load(a)B、b=json.loads(a)

C、b=json.dump(a)D、b=json.dumps(a)

3、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論