收到错误“TypeError:得到了意外的关键字参数”但参数在函数定义中

问题描述

我有一个定义如下的函数

import yfinance
from retry import retry

@retry(tries=3,delay=5)
def get_yfinance(tickers,start=None,end=None,interval='1h'):
    logging.info(f'Downloading data for {len(tickers)}')
    ticker_string = ' '.join(tickers)
    df = yfinance.download(ticker_string,group_by = 'ticker',interval=interval,start=start,end=end,prepost=True)
    df2 = df.stack(level=0).rename_axis(['Date','Ticker']).reset_index(level=1)
    df2['Date'] = df2['Date'].dt.tz_convert('UTC')
    df2 = df2.rename(columns={'Adj Close': 'AdjClose'})
    logging.info(f'Returned df with shape {df2.shape}')
    return df2

当我尝试这样称呼它时:

etlts = datetime.Now()
start = etlts - timedelta(hours=1)
tickers = sidf['Ticker'].to_list()
ydf = get_yfinance(tickers,end=etlts,interval='1m')

我得到以下堆栈跟踪:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
c:\yf.py in 
      47 from findata import *
      48 tickers = sidf['Ticker'].to_list()
----> 49 ydf = get_yfinance(tickers=tickers,interval='1m')

C:\python39\envs\Trad\lib\site-packages\decorator.py in fun(*args,**kw)
    229         def fun(*args,**kw):
    230             if not kwSyntax:
--> 231                 args,kw = fix(args,kw,sig)
    232             return caller(func,*(extras + args),**kw)
    233     fun.__name__ = func.__name__

C:\python39\envs\Trad\lib\site-packages\decorator.py in fix(args,kwargs,sig)
    201     Fix args and kwargs to be consistent with the signature
    202     """
--> 203     ba = sig.bind(*args,**kwargs)
    204     ba.apply_defaults()  # needed for test_dan_schult
    205     return ba.args,ba.kwargs

C:\python39\lib\inspect.py in bind(self,*args,**kwargs)
   3060         if the passed arguments can not be bound.
   3061         """
-> 3062         return self._bind(args,kwargs)
   3063 
   3064     def bind_partial(self,/,**kwargs):

C:\python39\lib\inspect.py in _bind(self,args,partial)
   3049                 arguments[kwargs_param.name] = kwargs
   3050             else:
-> 3051                 raise TypeError(
   3052                     'got an unexpected keyword argument {arg!r}'.format(
   3053                         arg=next(iter(kwargs))))

TypeError: got an unexpected keyword argument 'interval'

任何参数组合都会发生这种情况。无论我保留还是删除 @retry 装饰器,都会发生这种情况。我很感激任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)