我正在观看this教程,在这里我试图使用iexfinance获取库存数据。您可以在请求数据时选择数据类型,我选择了“ pandas”。当我运行内置函数时,出现读取为AttributeError: module 'pandas.compat' has no attribute 'string_types'
我正在使用python 3.7。我已经卸载并重新安装了iexfinance和pandas。我还创建了一个IEX云帐户,并像文档说明中那样传递了一个秘密密钥,但是存在相同的错误。本教程没有提到任何这些步骤,也没有提到为什么他的作品和我的作品没有引起人们的困惑。
我试图通过以下网站上的示例简化代码:即使在运行时:
from iexfinance.stocks import Stock
df = Stock("AAPL", output_format="pandas")
print(df.get_quote().head())
错误仍然存在
预期输出为:
AAPL
avgTotalVolume 30578248
calculationPrice close
change -0.58
changePercent -0.00298
close 207.27
我收到的输出是:
Traceback (most recent call last):
File "app.py", line 18, in <module>
df = Stock("AAPL", output_format="pandas")
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/iexfinance/stocks/base.py", line 45, in __init__
self.symbols = list(map(lambda x: x.upper(), _handle_lists(symbols)))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/iexfinance/utils/__init__.py", line 43, in _handle_lists
if isinstance(l, (compat.string_types, int)):
AttributeError: module 'pandas.compat' has no attribute 'string_types'
答案 0 :(得分:3)
您可以尝试将熊猫版本恢复为0.24.2:
pip install pandas==0.24.2
在这一点上,我仍然不确定熊猫中是否有错误或其他错误。
编辑:也许iexfinance在Pandas中使用了一些内部组件,并且pandas进行了重大更改,删除了python 2和所有兼容代码。
这也已经在他们的问题跟踪器上: https://github.com/addisonlynch/iexfinance/issues/163
答案 1 :(得分:0)
关于以下方法: 点安装pandas == 0.24.2 是的〜试试这个。
答案 2 :(得分:0)
到目前为止, 2019年10月2日,只需将iexfinance更新为最新版本(0.4.3),即可解决问题。
这样做:
pip install iexfinance --upgrade