import refinitiv.data as rd
import pandas as pd
rd.open_session()
# List of company names to search for
company_names = [
"TAKEDA PHARMACEUTICAL CO LTD",
"EURONEXT NV",
"BAXTER INTERNATIONAL INC",
"EMERSON ELECTRIC CO",
"FIDELITY NATIONAL INFORMATION SERVICES INC",
"FISERV INC",
"INTERNATIONAL BUSINESS MACHINES CORP",
"COCA-COLA CO",
"NORSK HYDRO ASA",
"PROCTER & GAMBLE CO",
"PHILIP MORRIS INTERNATIONAL INC",
"RTX CORP",
"STRYKER CORP",
"THERMO FISHER SCIENTIFIC INC",
"NASDAQ INC",
"UNITED PARCEL SERVICE INC",
"VERIZON COMMUNICATIONS INC"
]
results = []
for name in company_names:
# Perform search with top=1 to get a single best match
df = rd.discovery.search(
view=rd.discovery.Views.EQUITY_QUOTES,
query=name,
top=1,
filter="SearchAllCategoryv2 eq 'Equities'"
)
rows = []
for name in company_names:
try:
df = rd.discovery.search(
view=rd.discovery.Views.EQUITY_QUOTES,
query=name,
top=1,
filter="SearchAllCategoryv2 eq 'Equities'"
)
ric = "NOT FOUND" if df.empty else df.iloc[0]["RIC"]
rows.append({"Company Name": name, "RIC": ric})
except Exception as e:
rows.append({"Company Name": name, "RIC": f"ERROR: {e}"})
df_output = pd.DataFrame(rows)
print(df_output)
The codes works fine for these names except for NASDAQ INC for which it retrieves TSLA.O (NASDAQ constituent) instead of NDAQ.) and I don't know how to amend it.