efinance icon indicating copy to clipboard operation
efinance copied to clipboard

股票数据多线程下载的过程中,出现了异常:TypeError: __new__() got an unexpected keyword argument 'security_typeNa: '

Open Earlyu opened this issue 8 months ago • 1 comments

堆栈信息: File "F:\基础脚本\venv\lib\site-packages\efinance\stock\getter.py", line 233, in get_quote_history df = get_quote_history_for_stock( File "F:\基础脚本\venv\lib\site-packages\efinance\common\getter.py", line 204, in get_quote_history return get_quote_history_single(codes, File "F:\基础脚本\venv\lib\site-packages\efinance\utils\__init__.py", line 39, in run values = func(*args, **kwargs) File "F:\基础脚本\venv\lib\site-packages\efinance\common\getter.py", line 85, in get_quote_history_single quote_id = get_quote_id(code) File "F:\基础脚本\venv\lib\site-packages\decorator.py", line 232, in fun return caller(func, *(extras + args), **kw) File "F:\基础脚本\venv\lib\site-packages\retry\api.py", line 73, in retry_decorator return __retry_internal(partial(f, *args, **kwargs), exceptions, tries, delay, max_delay, backoff, jitter, File "F:\基础脚本\venv\lib\site-packages\retry\api.py", line 33, in __retry_internal return f() File "F:\基础脚本\venv\lib\site-packages\efinance\utils\__init__.py", line 88, in get_quote_id quote = search_quote(stock_code) File "F:\基础脚本\venv\lib\site-packages\efinance\utils\__init__.py", line 118, in search_quote quote = search_quote_locally(keyword) File "F:\基础脚本\venv\lib\site-packages\efinance\utils\__init__.py", line 168, in search_quote_locally quote = Quote(**_q) TypeError: __new__() got an unexpected keyword argument 'security_typeNa: '

报错的方法: ` def search_quote_locally(keyword: str) -> Union[Quote, None]: """ 在本地里面使用搜索记录进行关键词搜索

Parameters
----------
keyword : str
    搜索词

Returns
-------
Union[Quote,None]

"""
q = SEARCH_RESULT_DICT.get(keyword)
# NOTE 兼容旧版本 给缓存加上最后修改时间
if q is None or not q.get('last_time'):
    return None
last_time: float = q['last_time']
# 缓存过期秒数
max_ts = 3600 * 24 * 3
now = time.time()
# 缓存过期,在线搜索
if (now - last_time) > max_ts:
    return None
# NOTE 一定要拷贝 否则改变源对象
_q = q.copy()
# NOTE 一定要删除它 否则会构造错误
del _q['last_time']
quote = Quote(**_q)
return quote`

报错原因是未知参数;已知参数如下:

`

存储证券代码的实体

Quote = namedtuple('Quote', ['code', 'name', 'pinyin', 'id', 'jys', 'classify', 'market_type', 'security_typeName', 'security_type', 'mkt_num', 'type_us', 'quote_id', 'unified_code', 'inner_code']) ` 但后面的数据似乎来自数据来源,并我是我能修改的。 出现这个问题的原因未知,下载脚本已经用了很长时间,并未有修改,昨天开始出现问题,一开始以为是ip被封,今天在测试依然如此,并且,出现这个问题下载的股票,是不一定的?

文件目录: efinance\utils_init_.py

Earlyu avatar Oct 25 '23 01:10 Earlyu