Hi, I encountered a problem in converting tickers to RICs in Refinitiv.
1. However, before I move to next step, I found I suddenly have problems in retrieving data from refinitiv. After I set my app key and opened session by rd, there is always an error showing as follows:
An error occurred while requesting URL('http://localhost:9000/api/rdp/discovery/search/v1/lookup').
RemoteProtocolError("illegal status line: bytearray(b'\\xff\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x7fn\\x01oding: gzip, deflate')")
.......
h11._util.RemoteProtocolError: illegal status line: bytearray(b'\xff\x00\x00\x00\x00\x00\x00\x00\x01\x7fn\x01oding: gzip, deflate')
.......
httpcore.RemoteProtocolError: illegal status line: bytearray(b'\xff\x00\x00\x00\x00\x00\x00\x00\x01\x7fn\x01oding: gzip, deflate')
2. For the retrieving data code, below is the code. I would be very grateful if someone can help me out.
import pandas as pd
import refinitiv.data as rd
from refinitiv.data.content import symbol_conversion
def RefinitivRetriever(Ticker):
rd.open_session()
converted = []
Refinitiv_Info = symbol_conversion.Definition(
symbols = Ticker,
from_symbol_type = symbol_conversion.SymbolTypes.TICKER_SYMBOL,
to_symbol_types = [
symbol_conversion.SymbolTypes.RIC
],
).get_data()
# This step is to check if the conversion is successful. If not, fill in with an empty string.
for t in Ticker:
try:
converted = converted.append(Refinitiv_Info.data.raw['Matches'][t]['RIC'])
except KeyError:
converted = converted.append('')
# Return a dataframe with two columns, first one RIC list, while the second one Company Market Cap
RICs = Refinitiv_Info.data.df['RIC'].tolist()
MarketCap = rd.get_data(RICs, fields = ['TR.CompanyMarketCap'])
MarketCap.columns = ['RIC', 'MarketCap']
rd.close_session()