我有一个很长的函数从API中提取数据(此处不包括在内)。我使用以下调用来获取函数:
get_hourly_WSI_latlong_historical (startdate, enddate, lat, long, fields = None)
以下是我想提取数据的日期范围:
startdate = datetime.date(2011, 9, 6)
enddate = datetime.date(2014, 10, 12)
根据堆栈溢出成员的建议,我使用以下wrapper_function来获取从上述日期范围创建的结果数据框。
def my_wrapper_func(startdate, enddate):
middle_years = range(startdate.year+1, enddate.year)
_all = []
_all.append(get_hourly_WSI_latlong_historical(startdate, datetime(startdate.year, 12, 31)), 42.281, 83.743)
for year in middle_years:
_all.append(get_hourly_WSI_latlong_historical(datetime(year, 1, 1), datetime(year, 12, 31)), 42.281, 83.743)
_all.append(get_hourly_WSI_latlong_historical(datetime(enddate.year, 1, 1), datetime(enddate.year, 12, 31)), 42.281, 83.743)
return _all
my_wrapper_func(datetime(2010, 2, 1), datetime(2015, 2,1))
不幸的是我收到以下错误:
如何解决此问题并让代码成功运行?非常感谢任何帮助。
答案 0 :(得分:1)
在datetime(startdate.year, 12, 31)
行后面有多余的右括号:
_all.append(get_hourly_WSI_latlong_historical(startdate, datetime(startdate.year, 12, 31)), 42.281, 83.743)
_all.append(get_hourly_WSI_latlong_historical(datetime(enddate.year, 1, 1), datetime(enddate.year, 12, 31)), 42.281, 83.743)
那些右括号应该在行的末尾:
_all.append(get_hourly_WSI_latlong_historical(startdate, datetime(startdate.year, 12, 31), 42.281, 83.743))
_all.append(get_hourly_WSI_latlong_historical(datetime(enddate.year, 1, 1), datetime(enddate.year, 12, 31), 42.281, 83.743))
最好添加import datetime
,例如:
import datetime as dt
并在声明中使用它:
startdate = dt.date(2011, 9, 6)
enddate = dt.date(2014, 10, 12)
_all.append(get_hourly_WSI_latlong_historical(startdate, dt.datetime(startdate.year, 12, 31), 42.281, 83.743))
_all.append(get_hourly_WSI_latlong_historical(dt.datetime(enddate.year, 1, 1), dt.datetime(enddate.year, 12, 31), 42.281, 83.743))