本文目录一览:
- 1、用python编写的获取天气预报的代码总是有错误,求解
- 2、python怎么自动抓取网页上每日天气预报
- 3、如何使用python利用api获取天气预报
- 4、求助:用python获取天气预报
- 5、Python气象数据处理与绘图(2):常用数据计算方法
用python编写的获取天气预报的代码总是有错误,求解
weatherinfo=r.json() #在json后面加上括号才能返回结果。否则只能返回函数地址。
以下python3通过:
import requests
ApiUrl=""
r=requests.get(ApiUrl)
weatherinfo=r.json()
print (weatherinfo["weatherinfo"]["ptime"])
print (weatherinfo["weatherinfo"]["temp2"])
08:00
5℃
python怎么自动抓取网页上每日天气预报
使用到了urllib库和bs4。bs4提供了专门针对html的解析功能,比用RE方便许多。
# coding : UTF-8import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )from bs4 import BeautifulSoupimport csvimport urllibdef get_html(url):
html = urllib.urlopen(url) return html.read()def get_data(html_text):
final = []
bs = BeautifulSoup(html_text, "html.parser")
body = bs.body
data = body.find('div', {'id': '7d'})
ul = data.find('ul')
li = ul.find_all('li') for day in li:
temp = []
date = day.find('h1').string
temp.append(date)
inf = day.find_all('p')
temp.append(inf[0].string,) if inf[1].find('span') is None:
temperature_highest = None
else:
temperature_highest = inf[1].find('span').string
temperature_highest = temperature_highest.replace('C', '')
temperature_lowest = inf[1].find('i').string
temperature_lowest = temperature_lowest.replace('C', '')
temp.append(temperature_highest)
temp.append(temperature_lowest)
final.append(temp) return finaldef write_data(data, name):
file_name = name with open(file_name, 'a') as f:
f_csv = csv.writer(f)
f_csv.writerows(data)if __name__ == '__main__':
html_doc = get_html('')
result = get_data(html_doc)
write_data(result, 'weather.csv') print result12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
运行结果保存在csv文件中
如何使用python利用api获取天气预报
这个和用不用python没啥关系,是数据来源的问题。调用淘宝API,使用 api相关接口获得你想要的内容,我 记得api中有相关的接口,你可以看一下接口的说明。用python做爬虫来进行页面数据的获取。希望能帮到你。
求助:用python获取天气预报
# 获取温度、湿度、风力等
WEATHER_URL_A = ""
# 获取天气状况、最大/小温度等
WEATHER_URL_B = ""
# 获取未来7天天气数据
WEATHER_URL_C = ""
URL里%s指城市对应的代码。详细参考:
不过这篇文章里有的接口已经不能用了。
上面我给的三个URL里,前两个直接返回json格式数据;第三个返回是一个页面,需要自己从页面里提取想要的信息。
Python气象数据处理与绘图(2):常用数据计算方法
对于气象绘图来讲,第一步是对数据的处理,通过各类公式,或者统计方法将原始数据处理为目标数据。
按照气象统计课程的内容,我给出了一些常用到的统计方法的对应函数:
在计算气候态,区域平均时均要使用到求均值函数,对应NCL中的dim_average函数,在python中通常使用np.mean()函数
numpy.mean(a, axis, dtype)
假设a为[time,lat,lon]的数据,那么
需要特别注意的是,气象数据中常有缺测,在NCL中,使用求均值函数会自动略过,而在python中,当任意一数与缺测(np.nan)计算的结果均为np.nan,比如求[1,2,3,4,np.nan]的平均值,结果为np.nan
因此,当数据存在缺测数据时,通常使用np.nanmean()函数,用法同上,此时[1,2,3,4,np.nan]的平均值为(1+2+3+4)/4 = 2.5
同样的,求某数组最大最小值时也有np.nanmax(), np.nanmin()函数来补充np.max(), np.min()的不足。
其他很多np的计算函数也可以通过在前边加‘nan’来使用。
另外,
也可以直接将a中缺失值全部填充为0。
np.std(a, axis, dtype)
用法同np.mean()
在NCL中有直接求数据标准化的函数dim_standardize()
其实也就是一行的事,根据需要指定维度即可。
皮尔逊相关系数:
相关可以说是气象科研中最常用的方法之一了,numpy函数中的np.corrcoef(x, y)就可以实现相关计算。但是在这里我推荐scipy.stats中的函数来计算相关系数:
这个函数缺点和有点都很明显,优点是可以直接返回相关系数R及其P值,这避免了我们进一步计算置信度。而缺点则是该函数只支持两个一维数组的计算,也就是说当我们需要计算一个场和一个序列的相关时,我们需要循环来实现。
其中a[time,lat,lon],b[time]
(NCL中为regcoef()函数)
同样推荐Scipy库中的stats.linregress(x,y)函数:
slop: 回归斜率
intercept:回归截距
r_value: 相关系数
p_value: P值
std_err: 估计标准误差
直接可以输出P值,同样省去了做置信度检验的过程,遗憾的是仍需同相关系数一样循环计算。