4 回答
TA贡献1839条经验 获得超15个赞
好的,我通过升级 pandas datareader 解决了这个问题
pip install pandas-datareader --upgrade
``
Thanks
TA贡献1784条经验 获得超8个赞
我遇到了完全相同的错误。我正在使用 python anaconda 2020_07 版本。
解决方案是使用 anaconda 包中最新的 pandas-datareader v0.9。如果您使用 conda-forge 中的 pandas-datareader 包(使用旧版本 v0.81),您将遇到该错误。这是截至 2020 年 12 月 20 日的状态。
我运行下面的命令来安装最新的pandas-datareader
软件包。
conda install -c anaconda pandas-datareader
错误消息消失,问题已得到解决。
编辑:如果 conda 稍后降级pandas-datareader
回 conda-forge 旧版本,则有修复。
TA贡献1826条经验 获得超6个赞
原因是 pandas 从他们的库中删除了 urlencode。因此,对于较新版本的 pandas 来说,这永远不会起作用。安装其他库或升级无法解决该问题。
修复方法是使用 Python3 版本的 urlencode。幸运的是,Python3 的替代品似乎有所下降:
替换这个:
from pandas.io.common import urlencode
和:
from urllib.parse import urlencode
并像往常一样使用 urlencode
TA贡献1873条经验 获得超9个赞
上面的答案是正确的。我刚刚编写了一些实现它的代码:
import os
basePath = os.path.join(os.path.dirname(os.__file__),'site-packages','pandas_datareader','base.py')
# read base.py
with open(basePath, 'r') as f:
lines = f.read()
find = 'from pandas.io.common import urlencode'
replace = """from urllib.parse import urlencode"""
# add new text
lines = lines.replace(find,replace)
# overwrite old 'basedatatypes.py'
with open(basePath, 'w') as f:
f.write(lines)
initPath = os.path.join(os.path.dirname(os.__file__),'site-packages','pandas_datareader','iex','__init__.py')
# read iex/__init__.py
with open(initPath, 'r') as f:
lines = f.read()
# add new text
lines = lines.replace(find,replace)
# overwrite old 'basedatatypes.py'
with open(initPath, 'w') as f:
f.write(lines)
添加回答
举报