无法使用pandas web数据阅读器从Google财经获取数据:UnicodeDecodeError

时间:2017-12-03 09:40:32

标签: python pandas-datareader

使用Pandas web datareader从Google财务加载SPY数据时出错:

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

  

在import_data中输入文件“/home/user/Projects/pmb/dataaccess.py”,第63行           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中           out = 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(text))文件“/home/user/anaconda3/envs/quant35/lib/python3.5/site-packages/pandas/compat/init.py”,   第73行,以bytes_to_str为单位           return b.decode(encoding或'utf-8')

     

UnicodeDecodeError:'utf-8'编解码器无法将字节0xe3解码到位   34539:无效   继续字节

1 个答案:

答案 0 :(得分: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 - > finance) 昨天我在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'