簡體   English   中英

Python包裝器函數通過傳遞參數調用另一個函數時出錯

[英]Python wrapper function calling another function with arguments passing through is erroring out

我有一個很長的函數,可以將數據從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))  

不幸的是,我收到以下錯誤:

錯誤信息

我該怎么做才能解決此問題並使代碼成功運行? 任何幫助是極大的贊賞。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM