4 回答

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
好的,我通過升級(jí) pandas datareader 解決了這個(gè)問題
pip install pandas-datareader --upgrade
``
Thanks

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
我遇到了完全相同的錯(cuò)誤。我正在使用 python anaconda 2020_07 版本。
解決方案是使用 anaconda 包中最新的 pandas-datareader v0.9。如果您使用 conda-forge 中的 pandas-datareader 包(使用舊版本 v0.81),您將遇到該錯(cuò)誤。這是截至 2020 年 12 月 20 日的狀態(tài)。
我運(yùn)行下面的命令來安裝最新的pandas-datareader
軟件包。
conda install -c anaconda pandas-datareader
錯(cuò)誤消息消失,問題已得到解決。
編輯:如果 conda 稍后降級(jí)pandas-datareader
回 conda-forge 舊版本,則有修復(fù)。

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
原因是 pandas 從他們的庫中刪除了 urlencode。因此,對(duì)于較新版本的 pandas 來說,這永遠(yuǎn)不會(huì)起作用。安裝其他庫或升級(jí)無法解決該問題。
修復(fù)方法是使用 Python3 版本的 urlencode。幸運(yùn)的是,Python3 的替代品似乎有所下降:
替換這個(gè):
from?pandas.io.common?import?urlencode
和:
from?urllib.parse?import?urlencode
并像往常一樣使用 urlencode

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
上面的答案是正確的。我剛剛編寫了一些實(shí)現(xiàn)它的代碼:
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)
添加回答
舉報(bào)