Python包装函数调用另一个传递参数的函数时出错

2024-10-04 09:23:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从API中提取数据的长函数(这里不包括)。我使用以下调用获取函数:

get_hourly_WSI_latlong_historical (startdate, enddate, lat, long, fields = None)

以下是我要为其提取数据的日期范围:

startdate = datetime.date(2011, 9, 6)
enddate = datetime.date(2014, 10, 12)

根据stack overflow成员的建议,我使用下面的包装器函数来获取从上述日期范围创建的结果数据帧。你知道吗

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))  

不幸的是,我得到了以下错误:

error message

如何解决此问题并使代码成功运行?非常感谢您的帮助。你知道吗


Tags: 数据函数getdatetimedatemyallyear
1条回答
网友
1楼 · 发布于 2024-10-04 09:23:37

行中的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))

相关问题 更多 >