如何使用 yfinance 下载数据修复此错误

Posted

技术标签:

【中文标题】如何使用 yfinance 下载数据修复此错误【英文标题】:How to fix this error with yfinance downloading data 【发布时间】:2021-09-28 01:07:48 【问题描述】:

我使用 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)

【问题讨论】:

更新到最新版本会有所帮助。 0.1.63 能否告诉我们您使用的是哪个 IDE?但是,请尝试重新安装 yfinance 并执行此代码。它对我有用。 @PrantaPalit 使用默认 IDLE IDE。另外我如何更新 yfinance? @r-beginners 你的意思是更新python还是更新yfinance? 升级yfinance 【参考方案1】:

尝试重新安装/升级yfinance 并执行此代码。它对我有用。

sudo python3 -m pip install --upgrade yfinance

【讨论】:

【参考方案2】:

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

sudo python3 -m pip install --upgrade yfinance

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

【讨论】:

以上是关于如何使用 yfinance 下载数据修复此错误的主要内容,如果未能解决你的问题,请参考以下文章

无法获取数据,使用包 yfinance 按格式分组下载到熊猫数据框中,仅适用于我的子列表中的特定代码

如何使用 yfinance 检测失败的下载

Yfinance:同时下载多只股票的多个参数(beta、市值等)?

yFinance 的 JSON 解码错误 [JSONDecodeError:预期值:第 1 行第 1 列(字符 0)]

YFINANCE:检索更多ETF数据

如何从 yfinance 获取特定时间和日期的 1 分钟价格数据?