Python是如何查詢(xún)天氣的(1)
今天馬哥教育要跟大家分享的文章是Python是如何查詢(xún)天氣的(1)?我們今天也是開(kāi)始一個(gè)新的內(nèi)容——查天氣,當(dāng)然今天不是直接告訴你怎么查天氣,而是跟你簡(jiǎn)單說(shuō)說(shuō),天氣怎么查詢(xún),Python入門(mén)新手和正在Python學(xué)習(xí)的小伙伴快來(lái)看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!
大家試著自己是否可以完成這個(gè)代碼,挑戰(zhàn)一下吧:
給大家看一個(gè)程序:

你輸入一個(gè)城市的名稱(chēng),就會(huì)告訴你這個(gè)城市現(xiàn)在的天氣情況。接下來(lái)的幾節(jié)課,我就說(shuō)一下怎么實(shí)現(xiàn)這樣一個(gè)小程序。
之所以能知道一個(gè)城市的天氣,是因?yàn)橛昧酥袊?guó)天氣網(wǎng)(www.weather.com.cn)提供的天氣查詢(xún)接口。在瀏覽器里試著訪問(wèn)一下:
http://www.weather.com.cn/data/cityinfo/101010100.html
你就能看到北京現(xiàn)在的天氣。這段看上去有點(diǎn)像Python中字典類(lèi)的文字是一種稱(chēng)作json格式的數(shù)據(jù)。
而我們的程序要做的事情,就是按照用戶(hù)輸入的城市名稱(chēng),去天氣網(wǎng)的接口請(qǐng)求對(duì)應(yīng)的天氣信息,再把結(jié)果展示給用戶(hù)。
于是,在這個(gè)程序中,我們要用到兩個(gè)新模塊:
1. urllib2
用來(lái)發(fā)送網(wǎng)絡(luò)請(qǐng)求,獲取數(shù)據(jù)
2. json
用來(lái)解析獲得的數(shù)據(jù)
聽(tīng)上去似乎還挺不算太復(fù)雜?但是注意剛才那個(gè)例子,我們請(qǐng)求北京天氣時(shí),用了“101010100”這樣的數(shù)字。這是天氣網(wǎng)設(shè)定的城市代碼。然而令人蛋疼的是,天氣網(wǎng)并沒(méi)有直接給出所有城市代碼的對(duì)應(yīng)關(guān)系,而是給了3個(gè)接口:
1. http://m.weather.com.cn/data5/city.xml
獲取所有省/直轄市的編號(hào),如“01|北京,02|上海,03|天津”
2. http://m.weather.com.cn/data5/city省編號(hào).xml
獲取二級(jí)地區(qū)編號(hào),如江蘇是:city19.xml
3. http://m.weather.com.cn/data5/city二級(jí)編號(hào).xml
獲取三級(jí)編號(hào),如南京是:city1901.xml
得到最終的三級(jí)編號(hào)之后,再加上中國(guó)101的前綴,就得到了城市代碼,如南京市區(qū)就是“101190101”
所以,你可以選擇,再寫(xiě)一個(gè)Python程序,事先把這些復(fù)雜的編碼全部抓取下來(lái),整理成你要的格式;或者,偷懶一下,跳過(guò)這個(gè)過(guò)程,直接拿我抓好的編碼。我放在了網(wǎng)盤(pán)里:
http://pan.baidu.com/share/link?shareid=1471212773&uk=204484850
今天先賣(mài)個(gè)關(guān)子,不說(shuō)具體的寫(xiě)法。想挑戰(zhàn)的同學(xué)可以試試再我說(shuō)之前就把這個(gè)程序搞定。
恭喜您在Python的道路上又堅(jiān)持了一天,大家想想我們之前講過(guò)的循環(huán)、文件存取、修改等,是不是可以試著寫(xiě)寫(xiě)呢?試著挑戰(zhàn)一下自己,我在這里期待著大家的好成績(jī)。
以上就是馬哥教育今天為大家分享的關(guān)于Python是如何查詢(xún)天氣的(1)的文章,希望本篇文章能夠?qū)φ?Python學(xué)習(xí)?和從事Python相關(guān)工作的小伙伴們有所幫助,想要了解更多相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來(lái)源于網(wǎng)絡(luò),侵刪!