使用python遍歷指定城市的一周氣溫
處于興趣,寫(xiě)了一個(gè)遍歷指定城市五天內(nèi)的天氣預(yù)報(bào),并轉(zhuǎn)為華氏度顯示。
把城市名字寫(xiě)到一個(gè)列表里這樣可以方便的添加城市。并附有詳細(xì)注釋
import requests import json #定義一個(gè)函數(shù) 避免代碼重寫(xiě)多次。 def gettemp(week,d_or_n,date): wendu=data['result']['weather'][week]['info'][d_or_n][date] #對(duì)字典進(jìn)行拆分 return int(wendu) def getft(t): ft=t*1.8+32 return float(str(ft)[0:4]) cities=['保定','北京','上海','武漢','鄭州','齊齊哈爾'] #這里可以指定想要遍歷的城市 url='http://api.avatardata.cn/Weather/Query?key=68e75677978441f6872c1106175b8673&cityname=' #用于和cities里的城市進(jìn)行字符串拼接 low=0 high=2 for city in cities: r = requests.get(url+city) # 最基本的GET請(qǐng)求 #print(r.status_code) 獲取返回狀態(tài)200是成功 #print(r.text) 打印解碼后的返回?cái)?shù)據(jù) data=json.loads(r.text) #返回的json數(shù)據(jù)被轉(zhuǎn)換為字典類(lèi)型 #print(type(data)) data 的數(shù)據(jù)類(lèi)型是字典 所以可以按照字典操作(字典里的列表就按列表操作) print(city,'近五天天氣預(yù)報(bào):') for i in range(5): week='周'+str(data['result']['weather'][i]['week']) #對(duì)字典類(lèi)型進(jìn)行逐個(gè)拆分 如列表 元組等。 daylow=gettemp(i,'day',low) dlf=getft(daylow) dayhigh=gettemp(i,'day',high) dhf=getft(dayhigh) nightlow=gettemp(i,'night',low) nlf=getft(nightlow) nighthigh=gettemp(i,'night',high) nhf=getft(nighthigh) print(week,'白天氣溫:',daylow,'~',dayhigh,'攝氏度','晚上氣溫:',nightlow,'~',nighthigh,'攝氏度') print(' ','白天氣溫:',dlf,'~',dhf,'華氏度','晚上氣溫:',nlf,'~',nhf,'華氏度') print('\n') {"result":{"realtime":{"wind":{"windspeed":null,"direct":"西風(fēng)","power":"3級(jí)","offset":null},"time":"16:00:00","weather":{"humidity":"27","img":"0","info":"晴","temperature":"13"},"dataUptime":"1490517362","date":"2017-03-26","city_code":"101090201","city_name":"保定","week":"0","moon":"二月廿九"},"life":{"date":"2017-3-26","info":{"kongtiao":["開(kāi)啟制暖空調(diào)","您將感到有些冷,可以適當(dāng)開(kāi)啟制暖空調(diào)調(diào)節(jié)室內(nèi)溫度,以免著涼感冒。"],"yundong":["較適宜","天氣較好,但考慮風(fēng)力較強(qiáng)且氣溫較低,推薦您進(jìn)行室內(nèi)運(yùn)動(dòng),若在戶(hù)外運(yùn)動(dòng)注意防風(fēng)并適當(dāng)增減衣物。"],"ziwaixian":["中等","屬中等強(qiáng)度紫外線(xiàn)輻射天氣,外出時(shí)建議涂擦SPF高于15、PA+的防曬護(hù)膚品,戴帽子、太陽(yáng)鏡。"],"ganmao":["較易發(fā)","晝夜溫差較大,較易發(fā)生感冒,請(qǐng)適當(dāng)增減衣服。體質(zhì)較弱的朋友請(qǐng)注意防護(hù)。"],"xiche":["較適宜","較適宜洗車(chē),未來(lái)一天無(wú)雨,風(fēng)力較小,擦洗一新的汽車(chē)至少能保持一天。"],"wuran":null,"chuanyi":["冷","天氣冷,建議著棉服、羽絨服、皮夾克加羊毛衫等冬季服裝。年老體弱者宜著厚棉衣、冬大衣或厚羽絨服。"]}},"weather":[{"date":"2017-03-26","week":"日","nongli":"二月廿九","info":{"dawn":null,"day":["0","晴","17","西北風(fēng)","3-4 級(jí)","06:12"],"night":["0","晴","2","西南風(fēng)","微風(fēng)","18:36"]}},{"date":"2017-03-27","week":"一","nongli":"二月三十","info":{"dawn":["0","晴","2","西南風(fēng)","微風(fēng)","18:36"],"day":["0","晴","15","南風(fēng)","微風(fēng)","06:11"],"night":["7","小雨","3","南風(fēng)","微風(fēng)","18:37"]}},{"date":"2017-03-28","week":"二","nongli":"三月初一","info":{"dawn":["7","小雨","3","南風(fēng)","微風(fēng)","18:37"],"day":["1","多云","15","南風(fēng)","微風(fēng)","06:09"],"night":["0","晴","3","南風(fēng)","微風(fēng)","18:38"]}},{"date":"2017-03-29","week":"三","nongli":"三月初二","info":{"dawn":["0","晴","3","南風(fēng)","微風(fēng)","18:38"],"day":["0","晴","18","南風(fēng)","微風(fēng)","06:08"],"night":["0","晴","3","北風(fēng)","微風(fēng)","18:39"]}},{"date":"2017-03-30","week":"四","nongli":"三月初三","info":{"dawn":["0","晴","3","北風(fēng)","微風(fēng)","18:39"],"day":["0","晴","17","北風(fēng)","微風(fēng)","06:06"],"night":["0","晴","3","北風(fēng)","微風(fēng)","18:40"]}}],"pm25":{"key":"Baoding","show_desc":"0","pm25":{"curPm":"34","pm25":"14","pm10":"26","level":"1","quality":"優(yōu)","des":"空氣很好,可以外出活動(dòng)"},"dateTime":"2017年03月26日16時(shí)","cityName":"保定"},"isForeign":0},"error_code":0,"reason":"Succes"} 這是返回的一個(gè)json數(shù)據(jù),可以通過(guò)json格式化工具查看會(huì)方便一些,通過(guò)json.loads其實(shí)都是字典列表的一些嵌套,而想要取的數(shù)據(jù) 在字典里"result"里, 而data['result'] 又是一個(gè)字典, {'life': {'date': '2017-3-26', 'info': {'yundong': ['較適宜', '天氣較好,但考慮風(fēng)力較強(qiáng)且氣溫較低,推薦您進(jìn)行室內(nèi)運(yùn)動(dòng),若在戶(hù)外運(yùn)動(dòng)注意防風(fēng)并適當(dāng)增減衣物。'], 'xiche': ['較適宜', '較適宜洗車(chē),未來(lái)一天無(wú)雨,風(fēng)力較小,擦洗一新的汽車(chē)至少能保持一天。'], 'ganmao': ['較易發(fā)', '晝夜溫差較大,較易發(fā)生感冒,請(qǐng)適當(dāng)增減衣服。體質(zhì)較弱的朋友請(qǐng)注意防護(hù)。'], 'ziwaixian': ['中等', '屬中等強(qiáng)度紫外線(xiàn)輻射天氣,外出時(shí)建議涂擦SPF高于15、PA+的防曬護(hù)膚品,戴帽子、太陽(yáng)鏡。'], 'chuanyi': ['冷', '天氣冷,建議著棉服、羽絨服、皮夾克加羊毛衫等冬季服裝。年老體弱者宜著厚棉衣、冬大衣或厚羽絨服。'], 'wuran': None, 'kongtiao': ['開(kāi)啟制暖空調(diào)', '您將感到有些冷,可以適當(dāng)開(kāi)啟制暖空調(diào)調(diào)節(jié)室內(nèi)溫度,以免著涼感冒。']}}, 'weather': [{'date': '2017-03-26', 'week': '日', 'info': {'dawn': None, 'night': ['0', '晴', '2', '西南風(fēng)', '微風(fēng)', '18:36'], 'day': ['0', '晴', '17', '西北風(fēng)', '3-4 級(jí)', '06:12']}, 'nongli': '二月廿九'}, {'date': '2017-03-27', 'week': '一', 'info': {'dawn': ['0', '晴', '2', '西南風(fēng)', '微風(fēng)', '18:36'], 'night': ['7', '小雨', '3', '南風(fēng)', '微風(fēng)', '18:37'], 'day': ['0', '晴', '15', '南風(fēng)', '微風(fēng)', '06:11']}, 'nongli': '二月三十'}, {'date': '2017-03-28', 'week': '二', 'info': {'dawn': ['7', '小雨', '3', '南風(fēng)', '微風(fēng)', '18:37'], 'night': ['0', '晴', '3', '南風(fēng)', '微風(fēng)', '18:38'], 'day': ['1', '多云', '15', '南風(fēng)', '微風(fēng)', '06:09']}, 'nongli': '三月初一'}, {'date': '2017-03-29', 'week': '三', 'info': {'dawn': ['0', '晴', '3', '南風(fēng)', '微風(fēng)', '18:38'], 'night': ['0', '晴', '3', '北風(fēng)', '微風(fēng)', '18:39'], 'day': ['0', '晴', '18', '南風(fēng)', '微風(fēng)', '06:08']}, 'nongli': '三月初二'}, {'date': '2017-03-30', 'week': '四', 'info': {'dawn': ['0', '晴', '3', '北風(fēng)', '微風(fēng)', '18:39'], 'night': ['0', '晴', '3', '北風(fēng)', '微風(fēng)', '18:40'], 'day': ['0', '晴', '17', '北風(fēng)', '微風(fēng)', '06:06']}, 'nongli': '三月初三'}], 'isForeign': 0, 'pm25': {'pm25': {'des': '空氣很好,可以外出活動(dòng)', 'curPm': '34', 'level': '1', 'pm10': '26', 'pm25': '14', 'quality': '優(yōu)'}, 'show_desc': '0', 'key': 'Baoding', 'dateTime': '2017年03月26日16時(shí)', 'cityName': '保定'}, 'realtime': {'city_name': '保定', 'weather': {'info': '晴', 'img': '0', 'humidity': '27', 'temperature': '13'}, 'week': '0', 'wind': {'windspeed': None, 'power': '3級(jí)', 'offset': None, 'direct': '西風(fēng)'}, 'city_code': '101090201', 'date': '2017-03-26', 'dataUptime': '1490517362', 'time': '16:00:00', 'moon': '二月廿九'}} 相同的方法取 data['result']['weather'] 這又是一個(gè)元組, [{'nongli': '二月廿九', 'info': {'night': ['0', '晴', '2', '西南風(fēng)', '微風(fēng)', '18:36'], 'dawn': None, 'day': ['0', '晴', '17', '西北風(fēng)', '3-4 級(jí)', '06:12']}, 'week': '日', 'date': '2017-03-26'}, {'nongli': '二月三十', 'info': {'night': ['7', '小雨', '3', '南風(fēng)', '微風(fēng)', '18:37'], 'dawn': ['0', '晴', '2', '西南風(fēng)', '微風(fēng)', '18:36'], 'day': ['0', '晴', '15', '南風(fēng)', '微風(fēng)', '06:11']}, 'week': '一', 'date': '2017-03-27'}, {'nongli': '三月初一', 'info': {'night': ['0', '晴', '3', '南風(fēng)', '微風(fēng)', '18:38'], 'dawn': ['7', '小雨', '3', '南風(fēng)', '微風(fēng)', '18:37'], 'day': ['1', '多云', '15', '南風(fēng)', '微風(fēng)', '06:09']}, 'week': '二', 'date': '2017-03-28'}, {'nongli': '三月初二', 'info': {'night': ['0', '晴', '3', '北風(fēng)', '微風(fēng)', '18:39'], 'dawn': ['0', '晴', '3', '南風(fēng)', '微風(fēng)', '18:38'], 'day': ['0', '晴', '18', '南風(fēng)', '微風(fēng)', '06:08']}, 'week': '三', 'date': '2017-03-29'}, {'nongli': '三月初三', 'info': {'night': ['0', '晴', '3', '北風(fēng)', '微風(fēng)', '18:40'], 'dawn': ['0', '晴', '3', '北風(fēng)', '微風(fēng)', '18:39'], 'day': ['0', '晴', '17', '北風(fēng)', '微風(fēng)', '06:06']}, 'week': '四', 'date': '2017-03-30'}] 接著取元組里的字典,逐步拆分即可獲得想要的數(shù)據(jù)。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
python判斷一組數(shù)呈上升還是下降趨勢(shì)的操作方法
要判斷一組數(shù)(數(shù)列)是呈上升趨勢(shì)、下降趨勢(shì)還是無(wú)明顯趨勢(shì),我們可以比較數(shù)列中相鄰元素的差值,這篇文章主要介紹了python?如何判斷一組數(shù)呈上升還是下降趨勢(shì),需要的朋友可以參考下2024-06-06caffe的python接口deploy生成caffemodel分類(lèi)新的圖片
這篇文章主要為大家介紹了caffe的python接口生成deploy文件學(xué)習(xí)以及用訓(xùn)練好的模型(caffemodel)來(lái)分類(lèi)新的圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06python3.8+django2+celery5.2.7環(huán)境準(zhǔn)備(python測(cè)試開(kāi)發(fā)django)
這篇文章主要介紹了python測(cè)試開(kāi)發(fā)django之python3.8+django2+celery5.2.7環(huán)境準(zhǔn)備工作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07python實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名
這篇文章主要介紹了python實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名,主要以python怎么快速對(duì)請(qǐng)求體做一次簽名為主題,塑造實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名過(guò)程,具有一定得參考價(jià)值,需要的小伙伴可以參考一下2022-02-02用Python創(chuàng)建聲明性迷你語(yǔ)言的教程
這篇文章主要介紹了用Python創(chuàng)建聲明性迷你語(yǔ)言的教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04TensorFlow實(shí)現(xiàn)iris數(shù)據(jù)集線(xiàn)性回歸
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)iris數(shù)據(jù)集線(xiàn)性回歸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09python 實(shí)現(xiàn)對(duì)數(shù)據(jù)集的歸一化的方法(0-1之間)
今天小編就為大家分享一篇python 實(shí)現(xiàn)對(duì)數(shù)據(jù)集的歸一化的方法(0-1之間),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07