yfinance下载数据出现这个错误如何解决

How to fix this error with yfinance downloading data

我使用 yfinance 有一段时间了。当我去度假用 yfinance 下载数据时,pandas_datareader 停止为我工作。我猜这是由与不同连接有关的事情引起的。当我度假回来时,我的代码仍然存在问题,而我之前使用的代码没有问题。我不明白错误消息,如果有人能帮助解决问题,我将不胜感激。

这是一些基本代码:

import pandas as pd
import yfinance as yf
import datetime as dt

start = dt.date(2020,1,1)
end = dt.date(2021,1,1)
ticker = 'AAPL'
df = yf.download(ticker,start,end)
print(df) 

此代码过去对我有用,但我现在收到以下错误消息:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/multitasking/__init__.py", line 102, in _run_via_pool
    return callee(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/yfinance/multi.py", line 168, in _download_one_threaded
    actions, period, interval, prepost, proxy, rounding)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/yfinance/multi.py", line 183, in _download_one
    rounding=rounding, many=True)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/yfinance/base.py", line 157, in history
    data = data.json()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/models.py", line 898, in json
    return complexjson.loads(self.text, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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)

我在 PrantaPalit 和 r-beginers 的评论帮助下解决了这个问题。我通过更新 python 来更新 yfinace:

sudo python3 -m pip install --upgrade yfinance

代码现在似乎运行良好。谢谢

尝试 reinstalling/upgrading yfinance 并执行此代码。它对我有用。

sudo python3 -m pip install --upgrade yfinance