您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎么在python中使用Jupyter實(shí)現(xiàn)一個(gè)天氣查詢功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
第0步:導(dǎo)入工具庫(kù)
import urllib.request import gzip
第一步:生成查詢天氣的url鏈接
city_name = '上海' # 將城市的中文名字編碼成utf-8字符 urllib.parse.quote(city_name) # 將編碼后的城市名拼接在原始鏈接的后面 url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)
第二步:訪問url鏈接,解析服務(wù)器返回的json數(shù)據(jù),變成python的字典數(shù)據(jù)
weather_data = urllib.request.urlopen(url).read()
# 訪問url鏈接,獲取字節(jié)串?dāng)?shù)據(jù) weather_data
# 將字節(jié)串解碼為unicode編碼 weather_data = gzip.decompress(weather_data)
weather_data
# 將unicode編碼解碼為utf-8編碼,顯示中文 weather_data = weather_data.decode('utf-8')
weather_data
# 將字符串兩端的引號(hào)去掉,變成python中的字典數(shù)據(jù) weather_dict = eval(weather_data)
weather_dict
type(weather_dict)
第三步:對(duì)字典進(jìn)行索引,獲取氣溫、風(fēng)速、風(fēng)向等天氣信息
weather_dict
weather_dict['data']['yesterday']['high']
print('您查詢的城市:',weather_dict['data']['city']) print('--------------------------') print('今天的天氣') print('溫度',weather_dict['data']['wendu']) print('感冒指數(shù)',weather_dict['data']['ganmao']) print('--------------------------') print('昨天的天氣') print('昨天:',weather_dict['data']['yesterday']['date']) print('天氣:',weather_dict['data']['yesterday']['type']) print('最高氣溫:',weather_dict['data']['yesterday']['high']) print('最低氣溫:',weather_dict['data']['yesterday']['low']) print('風(fēng)向:',weather_dict['data']['yesterday']['fx']) print('風(fēng)力:',weather_dict['data']['yesterday']['fl'][-5:-3]) print('--------------------------')
第四步:遍歷forecast列表中的五個(gè)元素,打印天氣信息
weather_dict[‘data'][‘forecast']是一個(gè)包含五個(gè)元素的列表,每一個(gè)元素都是一個(gè)字典。
weather_dict['data']['forecast']
for each in weather_dict['data']['forecast']: print('日期',each['date']) print('天氣',each['type']) print(each['high']) print(each['low']) print('風(fēng)向',each['fengxiang']) print('風(fēng)力:',each['fengli'][-5:-3]) print('--------------------------')
完整Python代碼
# 導(dǎo)入工具庫(kù) import urllib.request import gzip ## 第一步:生成查詢天氣的url鏈接 city_name = input('請(qǐng)輸入要查詢的城市名稱:') # 將城市的中文名字編碼成utf-8字符 urllib.parse.quote(city_name) # 生成完整url鏈接 url = 'http://wthrcdn.etouch.cn/weather_mini?city='+urllib.parse.quote(city_name) ## 第二步:訪問url鏈接,解析服務(wù)器返回的json數(shù)據(jù),變成python的字典數(shù)據(jù) # 獲取服務(wù)器返回的json字節(jié)串?dāng)?shù)據(jù) weather_data = urllib.request.urlopen(url).read() # 將字節(jié)串?dāng)?shù)據(jù)解碼為unicode中的utf-8數(shù)據(jù) weather_data = gzip.decompress(weather_data).decode('utf-8') # 將json數(shù)據(jù)轉(zhuǎn)為python的字典數(shù)據(jù) weather_dict = eval(weather_data) if weather_dict.get('desc') == 'invilad-citykey': print('您輸入的城市未收錄') # 第三步:對(duì)字典進(jìn)行索引,獲取氣溫、風(fēng)速、風(fēng)向等天氣信息 print('您查詢的城市:',weather_dict['data']['city']) print('--------------------------') print('今天的天氣') print('溫度',weather_dict['data']['wendu']) print('感冒指數(shù)',weather_dict['data']['ganmao']) print('--------------------------') print('昨天的天氣') print('昨天:',weather_dict['data']['yesterday']['date']) print('天氣:',weather_dict['data']['yesterday']['type']) print('最高氣溫:',weather_dict['data']['yesterday']['high']) print('最低氣溫:',weather_dict['data']['yesterday']['low']) print('風(fēng)向:',weather_dict['data']['yesterday']['fx']) print('風(fēng)力:',weather_dict['data']['yesterday']['fl'][-5:-3]) print('--------------------------') # 第四步:遍歷forecast列表中的五個(gè)元素,打印天氣信息 for each in weather_dict['data']['forecast']: print('日期',each['date']) print('天氣',each['type']) print(each['high']) print(each['low']) print('風(fēng)向',each['fengxiang']) print('風(fēng)力:',each['fengli'][-5:-3]) print('--------------------------')
看完上述內(nèi)容,你們對(duì)怎么在python中使用Jupyter實(shí)現(xiàn)一個(gè)天氣查詢功能有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。