在不了解API内部结构的情况下,我可以建议在5年内每天执行一次调用,并将每日数据附加到一个列表中:import datetime
import requests
定义一个函数,该函数将为给定的开始日期和结束日期之间的所有天数返回生成器(不是列表),该生成器必须作为日期时间对象输入:
^{pr2}$
示例值:city="London"
start_date="2019-03-01"
end_date="2019-03-11"
date_format = "%Y-%m-%d"
start_date = datetime.datetime.strptime(start_date, date_format)
end_date = datetime.datetime.strptime(end_date, date_format)
从开始日期到结束日期收集每日数据,每天一个请求:all_data = []
maxtempC_list = []
maxtempF_list = []
mintempC_list = []
mintempF_list = []
for each_date in daterange(start_date, end_date):
print(each_date.date())
ask = str(each_date.date())
json_data = requests.get(
'http://api.worldweatheronline.com/premium/v1/past-weather.ashx',
params=dict(
key='YOUR_API_KEY',
q=city,
format='json',
date=ask,
tp='24'
)
).json()
print(json_data)
all_data.append(json_data)
maxtempC_list.append(json_data['data']['weather'][0]['maxtempC'])
maxtempF_list.append(json_data['data']['weather'][0]['maxtempF'])
mintempC_list.append(json_data['data']['weather'][0]['mintempC'])
mintempF_list.append(json_data['data']['weather'][0]['mintempF'])