diff --git a/tests/test_tiingo.py b/tests/test_tiingo.py index 45aa439..c683fac 100644 --- a/tests/test_tiingo.py +++ b/tests/test_tiingo.py @@ -81,7 +81,7 @@ class TestTickerPrices(TestCase): def test_ticker_metadata_for_object(self): data = self._client.get_ticker_metadata("GOOGL", fmt='object') - assert len(data.name) > 1 + assert len(data[0].name) > 1 # tiingo/news diff --git a/tiingo/api.py b/tiingo/api.py index 329f36f..fc7d2fc 100644 --- a/tiingo/api.py +++ b/tiingo/api.py @@ -94,9 +94,13 @@ class TiingoClient(RestClient): if fmt == 'json': return data elif fmt == 'object': - # inspired by https://stackoverflow.com/a/15882054 - return json.loads(json.dumps(data), - object_hook=lambda d: namedtuple('Ticker', d.keys())(*d.values())) + obj_arr = [] + for el in data: + # inspired by https://stackoverflow.com/a/15882054 + arr_el = json.loads(json.dumps(data), + object_hook=lambda d: namedtuple('Ticker', d.keys())(*d.values())) + obj_arr.append(arr_el) + return obj_arr def get_ticker_price(self, ticker, startDate=None, endDate=None, @@ -168,8 +172,13 @@ class TiingoClient(RestClient): if fmt == 'json': return data elif fmt == 'object': - return json.loads(json.dumps(data), - object_hook=lambda d: namedtuple('NewsArticle', d.keys())(*d.values())) + obj_arr = [] + for el in data: + # inspired by https://stackoverflow.com/a/15882054 + arr_el = json.loads(json.dumps(data), + object_hook=lambda d: namedtuple('NewsArticle', d.keys())(*d.values())) + obj_arr.append(arr_el) + return obj_arr def get_bulk_news(self, file_id=None, fmt='json'): """Only available to institutional clients.