【问题标题】:The same code that used to work is now returning an exception以前工作的相同代码现在返回异常
【发布时间】:2021-09-20 16:40:42
【问题描述】:

我试图在几个股票代码之间做一个简单的关联。我之前运行过相同的代码并且它有效。现在,它返回一个引用一堆文件并包含我不理解的其他消息的异常。此外,必须在控制台中手动停止该命令。我对python和一般编程很陌生。我正在使用 Spyder 5.0.3 和 anaconda3。我已经尝试重新安装 Spyder 并更新了使用的软件包,但都没有解决问题。

问题似乎出在 yfinance 软件包上。当我尝试下载单个代码的价格数据时,返回了类似的异常。它似乎不是 pandas 或 numpy,因为我能够制作一个小数据框并运行 corrcoeff() 没有任何问题。值得的是,这是我使用的代码:

import pandas as pd
import numpy as np

d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

r = np.corrcoef(df)

以下是以前可以工作但不再工作的代码:

import pandas as pd
import numpy as np
import yfinance as yf

AAPL = yf.download('AAPL', period='32D', interval='1D')
MSFT = yf.download('MSFT', period='32D', interval='1D')
NVDA = yf.download('NVDA', period='32D', interval='1D')

corr3 = pd.DataFrame([AAPL['Close'],
                   MSFT['Close'],
                   NVDA['Close']])

r = np.corrcoef(corr3)

当我运行该文件时,我在控制台中收到以下异常:

Exception in thread Thread-10:
Traceback (most recent call last):
  File "C:\Users\jdejo\anaconda3\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\jdejo\anaconda3\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\jdejo\anaconda3\lib\site-packages\multitasking\__init__.py", line 102, in _run_via_pool
    return callee(*args, **kwargs)
  File "C:\Users\jdejo\anaconda3\lib\site-packages\yfinance\multi.py", line 167, in _download_one_threaded
    data = _download_one(ticker, start, end, auto_adjust, back_adjust,
  File "C:\Users\jdejo\anaconda3\lib\site-packages\yfinance\multi.py", line 179, in _download_one
    return Ticker(ticker).history(period=period, interval=interval,
  File "C:\Users\jdejo\anaconda3\lib\site-packages\yfinance\base.py", line 157, in history
    data = data.json()
  File "C:\Users\jdejo\anaconda3\lib\site-packages\requests\models.py", line 900, in json
    return complexjson.loads(self.text, **kwargs)
  File "C:\Users\jdejo\anaconda3\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "C:\Users\jdejo\anaconda3\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\jdejo\anaconda3\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我想知道我的代码出了什么问题。以前可以用,现在不行了。任何指导将不胜感激。

【问题讨论】:

  • 在您链接到用户的问题中,更新了他们正在使用的 yfinance 版本并解决了问题。我试过更新,我收到了同样的异常。我试过 yfinance 版本 0.1.62 和 0.1.63。
  • 我无法复制,也许其他人可以。 yfinance 0.1.63 和 0.1.62 对我来说都可以正常工作
  • 好的,感谢您的反馈。

标签: python python-3.x pandas numpy yfinance


【解决方案1】:

我已经解决了这个问题。我需要通过 spyder 中的控制台更新 yfinance。我一直在使用命令提示符来更新软件包。

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 2015-11-14
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2013-07-19
    相关资源
    最近更新 更多