For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
2 0 1 1

get_data() function : headers random bug

Dear support team,

I am asking for your help regarding a bug.

For instance, by running this Python script with Python 3.6.7 and library eikon 1.0.0, provided that I am connected to the Eikon API through my account key:

import numpy as np
import pandas as pd
import eikon
eikon.set_app_key('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')

ETF_db = pd.read_excel("ReportEikon_ETF_20180224.xlsx", header = 0)

ric_list = np.array((ETF_db[['Lipper RIC']]))

for ric in ric_list[0:2]:
    print(ric[0])
    Constituents, err = eikon.get_data(ric[0], ['TR.IndexConstituentRIC', {'TR.IndexConstituentWeightPercent':{'sort_dir':'desc'}}, 'TR.PctOfSharesOutHeld'], {'SDate':'2019-01-31'})
    print(Constituents)
cuserscedifdesktopgpichardeikonreporteikon-etf-201.txt

Here is the standard error appearing in my console :

Traceback (most recent call last):
  File "ETF_ID.py", line 15, in <module>
    Constituents, err = eikon.get_data(ric[0], ['TR.IndexConstituentRIC', {'TR.IndexConstituentWeightPercent':{'sort_dir':'desc'}}, 'TR.PctOfSharesOutHeld'], {'SDate':'2019-01-31'})
  File "/home/gpichard/anaconda3/lib/python3.7/site-packages/eikon/data_grid.py", line 169, in get_data
    return get_data_frame(result, field_name)
  File "/home/gpichard/anaconda3/lib/python3.7/site-packages/eikon/data_grid.py", line 218, in get_data_frame
    headers = [header['displayName'] for header in data_dict['headers'][0]]

KeyError: 'headers'

The issue appears randomly : if I run the same script several times in a row, the bug may appear at the first iteration, or at the n-th iteration, or not a all. I need to iterate over several thousands items (ETFs Lipper RICs).

I have attached an excerpt of my dataset : I use an Excel (.xlsx) file actually. Adapting the Python script for a .txt file (only accepted format on this forum) is straightforward with the routine from library pandas.

This issue has kept happening after reinstalling the eikon Python library and over several Windows 10 (with GNU/Linux Ubuntu subsystem) machines at our faculty.

Has it been documented and is there a workaround ?

--

Greg Pichard

Assistant - CEDIF (data centre)

HEC Lausanne - University of Lausanne

Switzerland

eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonpythonindexetf
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
Accepted
4.6k 26 7 22

@greg.pichard If the request implies a large result (large size), or there are too many requests (high volume), you will see this issue. So, if creating smaller chunks does not help, you can also try to increase the time between requests and use something like ```time.sleep(5)```, if you are doing it in a loop.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
4.6k 26 7 22

@greg.pichard it is a known bug, it happens when an internal API returns an empty response instead of an actual error because of a high volume of requests or a large size of the request. The underlying root cause is being investigated.

Try splitting your request into smaller chunks.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
2 0 1 1

OK @Zhenya Kovalyov, I understand there is a bug but what is the expected change to make ? I see a contraction between the diagnostic (possibly too many requests over a given period of time) and the advice, i.e. breaking the request into smaller chunks.

I am already breaking a request into the smallest chunk possible, if I am right : one variable (over several rows) at one date for one and single security.

Many thanks for your answer.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea