Python是如何查詢天氣的(3)
今天馬哥教育要跟大家分享的文章是Python是如何查詢天氣的(3)?在前兩節課我們談到了查天氣的難點,也跟大家說了解決辦法,并且也給大家開了個頭,今天我們來講一下剩下的查詢過程, Python入門新手和正在Python學習的小伙伴快來看一看吧,希望能夠對大家有所幫助 !
不知道大家有沒有完成剩下的查詢過程呢?沒有的話,我們一起來學習一下,完成了的話,我們一起對照一下吧:
看一下我們已經拿到的json格式的天氣數據:
{ "weatherinfo": { "city": "南京", "cityid": "101190101", "temp1": "37℃", "temp2": "28℃", "weather": "多云", "img1": "d1.gif", "img2": "n1.gif", "ptime": "11:00" } }
直接在命令行中看到的應該是沒有換行和空格的一長串字符,這里我把格式整理了一下。可以看出,它像是一個字典的結構,但是有兩層。最外層只有一個key--“weatherinfo”,它的value是另一個字典,里面包含了好幾項天氣信息,現在我們最關心的就是其中的temp1,temp2和weather。
雖然看上去像字典,但它對于程序來說,仍然是一個字符串,只不過是一個滿足json格式的字符串。我們用Python中json模塊提供的loads方法,把它轉成一個真正的字典。
import json data = json.loads(content)
這時候的data已經是一個字典,盡管在控制臺中輸出它,看上去和content沒什么區別,只是編碼上有些不同:
{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)
就知道區別在哪里了。
之后的事情就比較容易了。
result = data['weatherinfo'] str_temp = ('%sn%s ~ %s') % ( result['weather'], result['temp1'], result['temp2'] ) print str_temp
為了防止在請求過程中出錯,我加上了一個異常處理。
try: ### ### except: print '查詢失敗'
以及沒有找到城市時的處理:
if citycode: ### ### else: print '沒有找到該城市'
恭喜您在Python的道路上又堅持了一天,不知道今天的課程下來你覺得在用Python編程查詢天氣的過程中,還有什么不完善的地方嗎?如果有的話,可以想一想該如何改進呢?
以上就是馬哥教育今天為大家分享的關于如何Python是如何查詢天氣的(3)的文章,希望本篇文章能夠對正在 Python學習?和從事Python相關工作的小伙伴們有所幫助,想要了解更多相關知識記得關注馬哥教育官網。最后祝愿小伙伴們工作順利!
聲明:文章來源于網絡,侵刪!