1. 首先我們需要找到數據,很多地方提供了api,比如:
https://www.wunderground.com/weather/api(但是這個網站不提供空氣質量)
空氣質量可參考:https://www.zhihu.com/question/20939327
2. 從api獲取數據,使用python,代碼粘出來:
# -*- coding: UTF-8 -*-
import urllib2
import json
from datetime import datetime
import pandas as pd
''''
最終選擇的特征有:氣溫tempm, 露點dewptm, 濕度humidity, 風力wspdm, 能見度vism, 氣壓pressurei, 降水precipm
其中,tempm:min max mean, dewptm:min max mean, humidity:humidity, wspdm: min max, vism: mean min max,
pressurei: max min mean, precipm:precipm
目標:fog(霧霾)
'''
def getdata(month,day,meant,meand,humi,maxw,meanv,meanp,preci,fo):
date = datetime(2017, month, day)
print day
target = 'http://api.wunderground.com/api/{Your Key}/history_{}/q/CN/zmw:00000.1.54511.json?v=wuiapp'
f = urllib2.urlopen(target.format(date.strftime('%Y%m%d')))
json_string = f.read()
parsed_json = json.loads(json_string)
day = parsed_json['history']['dailysummary']
temp = day[0]['meantempm'] #氣溫情況
dewptm = day[0]['meandewptm'] # 露點情況
hum = day[0]['humidity'] # 濕度情況
wspdm = day[0]['maxwspdm'] # 風力情況
vism = day[0]['meanvism'] # 能見度情況
press = day[0]['meanpressurei'] # 氣壓情況
prec = day[0]['precipm'] # 降水情況
fog = day[0]['fog'] #霧霾情況
meant.append(temp)
meand.append(dewptm)
humi.append(hum)
maxw.append(wspdm)
meanv.append(vism)
meanp.append(press)
preci.append(prec)
fo.append(fog)
f.close()
if __name__ == '__main__':
meantempm = []
meandewptm = []
humidity = []
maxwspdm = []
meanvism = []
meanpressurei = []
precipm = []
f = []
for day in range(1,31):
getdata(4, day, meantempm, meandewptm, humidity, maxwspdm, meanvism, meanpressurei, precipm, f)
print meantempm
#head = [u'溫度',u'露點',u'濕度',u'風力',u'能見度',u'氣壓',u'降水',u'霧霾']
value = [meantempm, meandewptm, humidity, maxwspdm, meanvism, meanpressurei, precipm, f]
value = list(zip(*value))
dataframe = pd.DataFrame(value)
dataframe.to_csv('/Users/purixingtei/Downloads/output-2.csv', index=False, encoding="utf-8")
其中的Your Key需要被替換成自己的app key,然后主函數的循環,需要根據自己的月-日進行選擇。
特別注意一點就是:不要起csv.py的名!!!
(loading)
