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)
添加回答
舉報