微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用pandas_datareader加载数据时遇到JSONDecodeError

如何解决使用pandas_datareader加载数据时遇到JSONDecodeError

import { map as MAP,ord as ORD } from "fp-ts"

type Person = string;
type Age = number;

const oldestPerson = (ps:Map<Person,Age>) =>
  pipe(ps,MAP.getFoldableWithIndex<Person>(ORD.fromCompare<Person>((a,b)=>0)))......

错误

import json
import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
import yfinance as yf
yf.pdr_override()
style.use('ggplot')
start = dt.datetime(2020,1,1)
end = dt.datetime.Now()
df = web.get_data_yahoo('AMD',start,end)
df1 = json.load(df)
print(df1)

我将 pandas_datareader 更新为 0.7,将我的 pandas 更新为 0.24.1,但它仍然发生,请解释这里发生的事情,我也尝试使用此方法 .json() 和 to_json() 但没有任何效果

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

看到这段代码它给了我同样的错误为什么?

解决方法

pandas-datareader get_data API 返回 pandas.DataFrames,而不是字符串 json 对象或文件。

json.load 需要一个文件对象,而不是一个 DataFrame。您得到的错误只是说 JSON 模块需要不同的对象类型。

您应该能够跳过最后一行并只使用数据框 df

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。