iexfinance
iexfinance copied to clipboard
Batch fails when missing data
Summary (include Python version)
Python 3.8
print(Stock(['ICUI'], token=token).get_quote(filter='latestPrice'))
print(Stock(['CVLB'], token=token).get_quote(filter='latestPrice'))
print(Stock(['ICUI', 'CVLB'], token=token).get_quote(filter='latestPrice'))
Prints
latestPrice
ICUI 197.02
Empty DataFrame
Columns: []
Index: [CVLB]
...
ValueError: Mixing dicts with non-Series may lead to ambiguous ordering.
Date/time of issue
Dec 14th, 10:54am
Expected behavior
A dataframe with just ICUI, dropping CVLB
Actual behavior
ValueError
Thanks. Will look to patch this for a minor release this week.
Ahh, now I am unable to reproduce (I was able to yesterday). For your call I get
>>> a = Stock(["ICUI", "CVLB"])
>>> a.get_quote(filter="latestPrice")
latestPrice
ICUI 201.50
CVLB 7.82
and also:
>>> a = Stock(["ICUI", "BADSYMBOL"])
>>> a.get_quote(filter="latestPrice")
latestPrice
ICUI 203.61
Strange.
print(Stock(['ICUI', 'BADDD'], token=token).get_quote(filter='latestPrice'))
works for me
print(Stock(['ICUI', 'CVLB'], token=token).get_quote(filter='latestPrice'))
is still throwing the ValueError for me.
In iexfinance/base.py _format_output out is equal to
{'ICUI': {'quote': {'latestPrice': 205.34}}, 'CVLB': {}}
but
{'ICUI': {'quote': {'latestPrice': 205.34}}}
when I try 'ICUI' and 'BADSYMBOL'
{'ICUI': {'quote': {'latestPrice': 205.34}}, 'CVLB': {}}
This dict gets passed down to pd.DataFrame(). I don't see an easy way of fixing this...