0

使用 Pandas 网络数据阅读器从谷歌金融加载 SPY 数据时出错:

import pandas_datareader.data as web dfSPY = web.DataReader('SPY', 'google', start_date, end_date)

文件“/home/user/Projects/pmb/dataaccess.py”,第 63 行,在 import_data dfSPY = web.DataReader('SPY', 'google', start_date, end_date) 文件“/home/user/anaconda3/envs/ quant35/lib/python3.5/site-packages/pandas_datareader-0.5.0-py3.5.egg/pandas_datareader/data.py”,第 137 行,在 DataReader session=session).read() 文件“/home/user /anaconda3/envs/quant35/lib/python3.5/site-packages/pandas_datareader-0.5.0-py3.5.egg/pandas_datareader/base.py”,第 181 行,在读取 params=self._get_params(self.symbols )) 文件“/home/user/anaconda3/envs/quant35/lib/python3.5/site-packages/pandas_datareader-0.5.0-py3.5.egg/pandas_datareader/base.py”,第 79 行,在 _read_one_data 中= self._read_url_as_StringIO(url, params=params) 文件"/home/user/anaconda3/envs/quant35/lib/python3.5/site-packages/pandas_datareader-0.5.0-py3.5.egg/pandas_datareader/base.py”,第 98 行,在 _read_url_as_StringIO out.write(bytes_to_str (文本))文件“/home/user/anaconda3/envs/quant35/lib/python3.5/site-packages/pandas/compat/init .py",第 73 行,在 bytes_to_str 中 return b.decode(encoding or 'utf-8')

UnicodeDecodeError:“utf-8”编解码器无法解码位置 34539 中的字节 0xe3:无效的继续字节

4

1 回答 1

1

这是一个未解决的问题,您可以在此处查看:https ://github.com/pydata/pandas-datareader/issues/424

这就是我根据来自 github 的评论解决的方法:

检查 pandas_datareader/google/daily.py 中的 GoogleDailyReader.url() 是否返回“ http://www.google.com/finance/historical ”。如果是这样,请将其更改为“ http://finance.google.com/finance/historical ”。(www -> 财经)昨天我在 PyCharm 中下载 pandas-datareader 时,GoogleDailyReader.url() 的返回值为 ' http://www.google.com/finance/historical '。我不知道为什么。

测试它:

import pandas_datareader as pdr
c = pdr.google.daily.GoogleDailyReader()

c.url
# http://www.google.com/finance/historical'

pdr.__version__
# '0.5.0'
于 2017-12-03T10:04:31.707 回答