I got some error message when I use get_data() function.

I need all option data for specific underlying asset.

For example, when I use below code,

rd.get_data("0#SPX*.U", fields =['TR.BIDPRICE'])

then I got

Error code -1 | Unable to resolve all requested identifiers in ['0#SPX*.U'].


And I have another question about that function.

I can get some fields which have 'TR' in the field name (TR.RIC for example),

but I can check another fields without 'TR'(DSPLY_NAME for example) in the refinitiv workspace but can't get data with python api.


For example, when I use

rd.get_data('KS200305H3.KS',['TR.THETA','THETA','CF_NAME'])

the It just returns belows(It doesn't return 'THETA' and 'CF_NAME' but only 'TR.THETA')


Instrument Theta

0 KS200305H3.KS -0.031415


I don't know what's the problem with them.


Please get me some information about them.


thanks.


Best Answer

  • Jirapongse
    Answer ✓

    @thekimk

    Thank you for reaching out to us.

    I tested the code with the desktop.workspace session.

    The error indicates that the API is unable to resolve this chain RIC: 0#SPX*.U.

    You may try to use the EX-1.01.07-Chains example. This example will resolve a chain RIC by using the real-time feed then it will use the retrieved RICs with the get_data method to retrieve data. However, to use this example, you must have permission to access the Real-Time data of this chain RIC (0#SPX.U).

    Regarding the second problem, you may need to enable logging in the API by adding the following configuration in the RD configuration file (refinitiv-data.config.json).

    {
       
      "logs": {
        "level": "debug",
        "transports": {
          "console": {
            "enabled": false
          },
          "file": {
            "enabled": true,
            "name": "refinitiv-data-lib.log"
    }

        }
      },
      "sessions": {
        "default": "desktop.workspace",
    ...
    ...

    THETA and CF_NAME are real-time fields. You may not have permission to access the real-time of this RIC.

    on_complete_stream_event ({'ID': 5, 'Type': 'Status', 'Key': {'Service': 'IDN_FD3', 'Name': 'KS200305H3.KS'}, 'State': {'Stream': 'Closed', 'Data': 'Suspect', 'Code': 'NotEntitled', 'Text': 'Access Denied: User req to PE(6504)'}},)

    Otherwise, if you are using the desktop session, you may use Eikon Data API in the RD library instead.

    import refinitiv.data.eikon as ek
    ek.set_app_key('<app key>')
    df, err = ek.get_data('KS200305H3.KS',['TR.THETA','THETA','CF_NAME'])
    df

    1689844259063.png