亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python小程序基于Jupyter實現(xiàn)天氣查詢的方法

 更新時間:2020年03月27日 14:24:37   作者:w²大大  
這篇文章主要介紹了python小程序基于Jupyter實現(xiàn)天氣查詢的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

天氣查詢python小程序第0步:導(dǎo)入工具庫第一步:生成查詢天氣的url鏈接第二步:訪問url鏈接,解析服務(wù)器返回的json數(shù)據(jù),變成python的字典數(shù)據(jù)第三步:對字典進行索引,獲取氣溫、風(fēng)速、風(fēng)向等天氣信息第四步:遍歷forecast列表中的五個元素,打印天氣信息完整Python代碼
本案例是一個非常有趣的python小程序,調(diào)用網(wǎng)絡(luò)API查詢指定城市的天氣,并打印輸出天氣信息。

你將學(xué)到以下技能:

向網(wǎng)絡(luò)API發(fā)起請求,解析和處理服務(wù)器返回的json數(shù)據(jù),可以遷移到各種各樣的API中,如PM2.5查詢,道路擁堵查詢,自然災(zāi)害查詢等。
python字典數(shù)據(jù)類型的常用操作
以下的代碼運行在jupyter notebook的開發(fā)環(huán)境中,這是python數(shù)據(jù)分析、機器學(xué)習(xí)、人工智能開發(fā)最常用的開發(fā)界面,因為可以非常方便的撰寫博客、插入圖片和數(shù)學(xué)公式,并輸出代碼運行的中間結(jié)果,強烈建議你學(xué)習(xí)如何使用jupyter notebook。

第0步:導(dǎo)入工具庫

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é)串數(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

# 將字符串兩端的引號去掉,變成python中的字典數(shù)據(jù)
weather_dict = eval(weather_data)
weather_dict

type(weather_dict)

第三步:對字典進行索引,獲取氣溫、風(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列表中的五個元素,打印天氣信息

weather_dict[‘data'][‘forecast']是一個包含五個元素的列表,每一個元素都是一個字典。

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)入工具庫
import urllib.request
import gzip

## 第一步:生成查詢天氣的url鏈接
city_name = input('請輸入要查詢的城市名稱:')

# 將城市的中文名字編碼成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é)串數(shù)據(jù)
weather_data = urllib.request.urlopen(url).read()
# 將字節(jié)串數(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('您輸入的城市未收錄')
  
# 第三步:對字典進行索引,獲取氣溫、風(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列表中的五個元素,打印天氣信息
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('--------------------------')

到此這篇關(guān)于python小程序基于Jupyter實現(xiàn)天氣查詢的方法的文章就介紹到這了,更多相關(guān)python Jupyter 天氣查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 初次部署django+gunicorn+nginx的方法步驟

    初次部署django+gunicorn+nginx的方法步驟

    這篇文章主要介紹了初次部署django+gunicorn+nginx的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python如何在DataFrame增加數(shù)值

    Python如何在DataFrame增加數(shù)值

    這篇文章主要介紹了Python如何在DataFrame增加數(shù)值,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • jupyter notebook參數(shù)化運行python方式

    jupyter notebook參數(shù)化運行python方式

    這篇文章主要介紹了jupyter notebook參數(shù)化運行python方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • pandas數(shù)據(jù)分列實現(xiàn)分割符號&固定寬度

    pandas數(shù)據(jù)分列實現(xiàn)分割符號&固定寬度

    數(shù)據(jù)分列在數(shù)據(jù)處理中很常見,數(shù)據(jù)分列一般指的都是字符串分割,本文主要介紹了pandas數(shù)據(jù)分列實現(xiàn)分割符號&固定寬度,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • python處理按鈕消息的實例詳解

    python處理按鈕消息的實例詳解

    這篇文章主要介紹了python處理按鈕消息的實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 解決Python下imread,imwrite不支持中文的問題

    解決Python下imread,imwrite不支持中文的問題

    今天小編就為大家分享一篇解決Python下imread,imwrite不支持中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 關(guān)于pymysql模塊的使用以及代碼詳解

    關(guān)于pymysql模塊的使用以及代碼詳解

    在本篇文章里小編給大家整理的是關(guān)于關(guān)于pymysql模塊的使用以及代碼詳解,有興趣的朋友們學(xué)習(xí)下。
    2019-09-09
  • Python采集王者皮膚圖片實戰(zhàn)示例

    Python采集王者皮膚圖片實戰(zhàn)示例

    這篇文章主要為大家介紹了Python采集王者皮膚圖片實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Python 生成VOC格式的標簽實例

    Python 生成VOC格式的標簽實例

    這篇文章主要介紹了Python 生成VOC格式的標簽實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python語法學(xué)習(xí)之進程間的通信方式

    Python語法學(xué)習(xí)之進程間的通信方式

    進程在創(chuàng)建之后是沒有辦法獲取返回值的,但有的時候兩個進程之間需要進行相互之間的配合才能完成工作,這就需要通信的幫助。本文主要介紹了Python中進程間的通信方式,需要的可以了解一下
    2022-04-04

最新評論