INVESTAR / StockAnalysisInPython

456 stars 413 forks source link

3장 ch03_00_CumulativeProduct.py error 발생 #128

Closed denishong closed 2 years ago

denishong commented 2 years ago

3장에서 아래와 같이 실행 시 에러가 발생하는데요. 혹시 해결 방법이 있으신분은 가이드 좀 부탁드립니다. 문제가 발생하는 부분은 pdr.get_data_yahoo() 이 함수에서 나오고 있습니다. 이 함수를 단지 사용한다고 이런 문제가 나와서 어디를 수정해야 할지 모르겠어서 문의드립니다.

PC환경 : ubuntu 20.04/python 3.8

$python ch03_00_CumulativeProduct.py Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/usr/lib/python3.8/threading.py", line 870, in run self._target(*self._args, *self._kwargs) File "/home/denishong/.local/lib/python3.8/site-packages/multitasking/init.py", line 102, in _run_via_pool return callee(args, kwargs) File "/usr/local/lib/python3.8/dist-packages/yfinance/multi.py", line 166, in _download_one_threaded data = _download_one(ticker, start, end, auto_adjust, back_adjust, File "/usr/local/lib/python3.8/dist-packages/yfinance/multi.py", line 178, in _download_one return Ticker(ticker).history(period=period, interval=interval, File "/usr/local/lib/python3.8/dist-packages/yfinance/base.py", line 155, in history data = data.json() File "/home/denishong/.local/lib/python3.8/site-packages/requests/models.py", line 897, in json return complexjson.loads(self.text, kwargs) File "/usr/lib/python3.8/json/init.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/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)

leemanni commented 2 years ago

네 #127 이슈 작성자 입니다. 데니스 님과 로그를 비교해보니 저랑 같은 케이스 같네요 제 생각엔 야후 사이트의 구조가 바뀌거나 해당 API를 더이상 사용하지 못하는 것으로 추측이 됩니다..

denishong commented 2 years ago

127 와 동일한 문제로 정리해 주시면 될 것 같습니다.

@INVESTAR (김황후 님)의견대로 pandas, pandas_datareader, yfinance를 하나씩 uninstall후 다시 install해서 테스트 해 보니 yfinance를 다시 설치했을 때 정상적으로 동작하는 걸 확인 했습니다. 결론적으로 지금은 정상적으로 잘 동작합니다.

참고로 재설치 했을 때 각 library버젼정보를 확인 해 보니 yfinance만 version이 update되고 나머지는 버젼에 대한 정보 변화가 없었습니다.

[재 설치 전 버젼 정보 ] pandas 1.0.1 pandas-datareader 0.8.1 yfinance 0.1.54

[재 설치 후 버젼 정보] pandas 1.0.1 pandas-datareader 0.8.1 yfinance 0.1.70

yfinance 0.1.62에서 개선이 된 것 같아 보입니다. upgrade는 아래와 같이 하면 되네요. 참고로 공유드립니다. $ pip install yfinance --upgrade --no-cache-dir

참고 : https://github.com/ranaroussi/yfinance/issues