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
Best Answer
-
@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.
0
Answers
-
@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.
0 -
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.
0
Categories
- All Categories
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 33 Data Model Discovery
- 682 Datastream
- 1.4K DSS
- 613 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 248 ETA
- 552 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.8K Refinitiv Data Platform
- 622 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 191 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 84 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛