What is wrong with my Symbol conversion code?

Hello Team please check the following code.

The output that I want is USA country code specific but it is showing Exchanges from Thailand and Vienna.

Also my asset class are code for funds, equities, certificates and bonds but Commodities futures also show in my output.

Here is the code:

from lseg.data.content import symbol_conversion

import lseg.data as ld

import pandas as pd

my_tickers = ['AIG PR A', 'PTT', 'BRKa', 'ANPA', 'BADDDDYYYYYDDY', 'DNB', 'VRA', 'LAWR', 'STR', 'TYO']

ld.open_session()
response = symbol_conversion.Definition(

symbols=my_tickers,
from_symbol_type=symbol_conversion.SymbolTypes.TICKER_SYMBOL,

to_symbol_types=[
symbol_conversion.SymbolTypes.RIC

],
# preferred_country_code = "G:6J", # USA USA = "G:6J"

preferred_country_code = symbol_conversion.CountryCode.USA,

asset_class=[

symbol_conversion.AssetClass.FUNDS,

symbol_conversion.AssetClass.EQUITIES,

symbol_conversion.AssetClass.CERTIFICATES,

symbol_conversion.AssetClass.BONDS,

],

asset_state=symbol_conversion.AssetState.ACTIVE,

).get_data()

ld.close_session()

response = pd.DataFrame(response.data.df).reset_index().rename(columns={'index': 'Ticker'})

print(response)

from lseg.data.content import symbol_conversion

import lseg.data as ld

import pandas as pd

my_tickers = ['AIG PR A', 'PTT', 'BRKa', 'ANPA', 'BADDDDYYYYYDDY', 'DNB', 'VRA', 'LAWR', 'STR', 'TYO']

ld.open_session()
response = symbol_conversion.Definition(

symbols=my_tickers,
from_symbol_type=symbol_conversion.SymbolTypes.TICKER_SYMBOL,

to_symbol_types=[
symbol_conversion.SymbolTypes.RIC

],
# preferred_country_code = "G:6J", # USA USA = "G:6J"

preferred_country_code = symbol_conversion.CountryCode.USA,

asset_class=[

symbol_conversion.AssetClass.FUNDS,

symbol_conversion.AssetClass.EQUITIES,

symbol_conversion.AssetClass.CERTIFICATES,

symbol_conversion.AssetClass.BONDS,

],

asset_state=symbol_conversion.AssetState.ACTIVE,

).get_data()

ld.close_session()

response = pd.DataFrame(response.data.df).reset_index().rename(columns={'index': 'Ticker'})

print(response)

Is there something wrong with my code? Or this should be checked by content team?

image.png

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Marc_Belen24

    Thank you for reaching out to us.

    This interface resolves multiple symbols to one best match each.

    As far as I know, PTT is a ticker for PTT.BK. PTT.BK is the best match for this PTT ticker.

    For example, if I use this function to search for AAPL, it will return AAPL.O.

    image.png

    If I want a RIC in the Toronto exchange, I need to specify the preferred_country_code parameter and it will return AAPL.TO.

    image.png

    However, if I set the preferred_country_code parameter to a country that doesn't have the AAPL stock, it will return AAPL.O which is the best match.

    image.png

    As the name suggests (preferred…), this parameter simply promotes any matching results to the top of the list.

  • Hello @Jirapongse please see client's response:

    I appreciate the response and your follow-up. I appreciate the clarification about the ‘preferred_country_code’ parameter, but it is still confusing and perhaps incorrect:

    servlet.FileDownload?file=00PKY00000BhC1s

     

    For example, take ticker ‘BRKa’. This is Berkshire Hathaway Inc A share. The correct RIC is ‘BRKa’. I don’t know why it was tagged with the .VI exchange (which was NOT the preferred_country_code’ specified and not even in the home country of the listed security)

    servlet.FileDownload?file=00PKY00000BhC1t

     

    Also DNB was delisted on 8/25/25 as a result of going private.

     

    Is there any way to get the raw data output like you can with the Eikon results?

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    edited September 17

    The attached picture has the answer.

    image.png

    The ticker of BRKa is BRK.A.

    image.png

    For DNB, if we set the asset_state to INACTIVE, it will return DNB.B^J07.

    image.png image.png
  • Hello @Jirapongse, thank you again for the response. Please see client's follow-up:

    Hi there,

     

    Can the lseg api (LSEG Data Library) SymbolConversion return raw responses like the eikon api?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Marc_Belen24

    You can use the Search API to search for items. For example:

    response = ld.discovery.search(
        view  = ld.discovery.Views.EQUITY_QUOTES,
        top = 10000,
        filter = "TickerSymbol eq 'DNB' and ExchangeCountry eq 'USA'",
        )
    response
    

    It will return:

    image.png

    For more information, please refer to this Building Search into your Application Workflow article.