Python是如何查詢天氣的(3)
今天馬哥教育要跟大家分享的文章是Python是如何查詢天氣的(3)?在前兩節(jié)課我們談到了查天氣的難點(diǎn),也跟大家說了解決辦法,并且也給大家開了個(gè)頭,今天我們來講一下剩下的查詢過程, Python入門新手和正在Python學(xué)習(xí)的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!
不知道大家有沒有完成剩下的查詢過程呢?沒有的話,我們一起來學(xué)習(xí)一下,完成了的話,我們一起對(duì)照一下吧:
看一下我們已經(jīng)拿到的json格式的天氣數(shù)據(jù):
{ "weatherinfo": { "city": "南京", "cityid": "101190101", "temp1": "37℃", "temp2": "28℃", "weather": "多云", "img1": "d1.gif", "img2": "n1.gif", "ptime": "11:00" } }
直接在命令行中看到的應(yīng)該是沒有換行和空格的一長(zhǎng)串字符,這里我把格式整理了一下??梢钥闯?,它像是一個(gè)字典的結(jié)構(gòu),但是有兩層。最外層只有一個(gè)key--“weatherinfo”,它的value是另一個(gè)字典,里面包含了好幾項(xiàng)天氣信息,現(xiàn)在我們最關(guān)心的就是其中的temp1,temp2和weather。
雖然看上去像字典,但它對(duì)于程序來說,仍然是一個(gè)字符串,只不過是一個(gè)滿足json格式的字符串。我們用Python中json模塊提供的loads方法,把它轉(zhuǎn)成一個(gè)真正的字典。
import json data = json.loads(content)
這時(shí)候的data已經(jīng)是一個(gè)字典,盡管在控制臺(tái)中輸出它,看上去和content沒什么區(qū)別,只是編碼上有些不同:
{u'weatherinfo': {u'city': u'u5357u4eac', u'ptime': u'11:00', u'cityid': u'101190101', u'temp2': u'28u2103', u'temp1': u'37u2103', u'weather': u'u591au4e91', u'img2': u'n1.gif', u'img1': u'd1.gif'}}
但如果你用type方法看一下它們的類型:
print type(content) print type(data)
就知道區(qū)別在哪里了。
之后的事情就比較容易了。
result = data['weatherinfo'] str_temp = ('%sn%s ~ %s') % ( result['weather'], result['temp1'], result['temp2'] ) print str_temp
為了防止在請(qǐng)求過程中出錯(cuò),我加上了一個(gè)異常處理。
try: ### ### except: print '查詢失敗'
以及沒有找到城市時(shí)的處理:
if citycode: ### ### else: print '沒有找到該城市'

恭喜您在Python的道路上又堅(jiān)持了一天,不知道今天的課程下來你覺得在用Python編程查詢天氣的過程中,還有什么不完善的地方嗎?如果有的話,可以想一想該如何改進(jìn)呢?
以上就是馬哥教育今天為大家分享的關(guān)于如何Python是如何查詢天氣的(3)的文章,希望本篇文章能夠?qū)φ?Python學(xué)習(xí)?和從事Python相關(guān)工作的小伙伴們有所幫助,想要了解更多相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來源于網(wǎng)絡(luò),侵刪!