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
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛