yfinance json.decoder.JSONDecodeError
Asked Answered
S

3

9

It had been working all the time before today. I don't know why it doesn't work today.

import yfinance as yf
df = yf.Ticker('MMM').history(start='2021-01-01',end='2021-07-10')
File "D:\anaconda3\envs\tensorflow\lib\site-packages\yfinance\base.py", line 157, in history
data = data.json()
File "D:\anaconda3\envs\tensorflow\lib\site-packages\requests\models.py", line 900, in json
return complexjson.loads(self.text, **kwargs)
File "D:\anaconda3\envs\tensorflow\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "D:\anaconda3\envs\tensorflow\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "D:\anaconda3\envs\tensorflow\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)
Sothena answered 10/7, 2021 at 13:12 Comment(3)
Have you tried upgrading to the latest version with pip install yfinance==0.1.62?Curator
The current version causes errors and needs to be upgraded to the latest version (0.1.62).Amino
As of November 8th, 2021, the problem occurs with 0.1.63 and 0.1.64 as well. Rolling back to 0.1.62 did not help.Malang
H
6

I upgraded to the latest version and the problem was solved. Installation code for latest version: pip install yfinance==0.1.62

Herbert answered 11/7, 2021 at 15:40 Comment(2)
Thank you this absolutely did the trick! This was the answer I have been searching for. Do you know why this is an issue and what the differences are between that version and the most recent version (0.1.63)?Ahvenanmaa
@JaredCohen They changed the site from which they received the data. I noticed the error while trying to solve it. Example URL: BTC-USD The keys have changed to meet the requests in the previous version. Thank you for your comment :)Herbert
B
0

If Anyone Still facing problem with jsonDecoder error. Try deleting yfin from venv of pycharm folder. Somehow my system was not upgrading yfin in venv of pycharm. I had to manually delete yfin folder and upgrad yfin. Its now working for me. Thanks https://mcmap.net/q/593848/-json-decode-error-with-yfinance-jsondecodeerror-expecting-value-line-1-column-1-char-0

Blunt answered 31/7, 2021 at 11:41 Comment(0)
A
0

The Below patch fixed my issue: In /usr/local/lib/python3.8/dist-packages/yfinance/base.py Make below changes:

        # Getting data from json
        num_tries = 4
        url = "{}/v8/finance/chart/{}".format(self._base_url, self.ticker)
        while num_tries > 0:
            data = self.session.get(
                url=url,
                params=params,
                proxies=proxy,
                headers=utils.user_agent_headers
            )
            if "Will be right back" in data.text:
                raise RuntimeError("*** YAHOO! FINANCE IS CURRENTLY DOWN! ***\n"
                               "Our engineers are working quickly to resolve "
                               "the issue. Thank you for your patience.")
            if data.status_code == 404:
                _time.sleep(0.5)
                num_tries -= 1
                continue
            else:
                data = data.json()
                break
        if num_tries == 0:
            print("%s failed to get information"%self.ticker)
            data = {}
Ardrey answered 9/11, 2021 at 5:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.