I am trying to pull revenue segment data of companies based on a list of RIC codes. And get the keyerror: "headers".
My code looks as follows:
#Making list of instrument codes
riclist_HIP = data_2.Instrument.to_list()
#Calling the data
data_3,err = ek.get_data(riclist_HIP, ['TR.BGS.GeoTotalRevenue.segmentName', 'TR.BGS.GeoTotalRevenue','TR.CompanyName'])
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-17-b29cf30df8f5> in <module> 1 #Making TR API Call ----> 2 data_3,err = ek.get_data(riclist_HIP, ['TR.BGS.GeoTotalRevenue.segmentName', 'TR.BGS.GeoTotalRevenue','TR.CompanyName']) 3 data_3 ~/opt/anaconda3/lib/python3.7/site-packages/eikon/data_grid.py in get_data(instruments, fields, parameters, field_name, raw_output, debug) 195 return result 196 --> 197 return get_data_frame(result, field_name) 198 199 ~/opt/anaconda3/lib/python3.7/site-packages/eikon/data_grid.py in get_data_frame(data_dict, field_name) 244 headers = [header.get('field', header.get('displayName')) for header in data_dict['headers']] 245 else: --> 246 headers = [header['displayName'] for header in data_dict['headers']] 247 data = pd.np.array([[get_data_value(value) for value in row] for row in data_dict['data']]) 248 if len(data): KeyError: 'headers'
Could you please assist?
I saw other people have posted around this error but was unclear on how to adapt the solutions proposed to my case.
Many thanks in advance
The issue was that the RIC list I was trying to call was too long for the Eikon API to handle.
I divided the list into chunks and used a for loop to iterate over the chunks of the list.
See example below:
#Making chunks of the list of RICs in order for the API call to process it
chunklist = chunk(riclist, 100)
#Using a for loop to get the data based on the chunks of RIC list
content_df = 
for subs in chunklist:
RICs = ek.get_symbology(subs, from_symbol_type='ISIN', to_symbol_type= 'RIC')
content_df = pd.concat(content_df)
Thank you for providing the details. I'm afraid I do not reproduce the issue you describe.On my end the get_data call using the exact set of RICs and fields that you used returns the data as expected. Are you able to reproduce the issue consistently on your end? Is there any pattern to the problem you may have noticed?