KeyError: 'headers'

Team,


The script below suddenly stopped working for client. I can replicate the error message below. Please advise.

KeyError: 'headers'


import refinitiv.dataplatform.eikon as ek

ek.set_app_key('DEFAULT_CODE_BOOK_APP_KEY')


syntax = 'SCREEN(U(IN(Equity(active,public,primary))), TR.CompanyMarketCap>=1000000000, IN(TR.ExchangeMarketIdCode,"XTSE"), IN(TR.ExchangeCountryCode,"CA"), TR.PriceClose(SDate=0D)>=TR.Price50DayAverage,TR.PriceClose(SDate=-1D)<=TR.Price50DayAverage, CURN=CAD)'


fields = ["TR.CommonName","TR.PriceClose(SDate=0D)","TR.Price50DayAverage","TR.Volume(Scale=3)","TR.AvgDailyVolume30D(Scale=3)","TR.Price52WeekHigh","TR.Price52WeekLow"]


df,e = ek.get_data(syntax,fields)


df

Best Answer

  • raksina.samasiri
    Answer ✓

    Hi @kenley.macandog123 ,

    Thank you for providing the details. I'm afraid I do not reproduce the issue described. On my end, the get_data call using the exact code you used returns the data as expected (including the code in the attach text file. Are you able to reproduce the issue consistently on your end? Is there any pattern to the problem you may have noticed?

    For example, I got no error running the code provided in the question as the screenshot below
    1677569124811.png

Answers

  • Hi @kenley.macandog123,

    I believe the issue might be to do with `TR.PriceClose(SDate=0D)>=TR.Price50DayAverage` since the below worked (I used the new Python library, but the result is the same):


    import refinitiv.data as rd
    from refinitiv.data.discovery import Screener
    from IPython.display import display
    rd.open_session()
    response = Screener(
        "U(IN(Equity(active,public,primary))), " +  # Good
        "TR.CompanyMarketCap>=1000000000, IN(TR.ExchangeMarketIdCode,'XTSE'), " +  # Good
        "IN(TR.ExchangeCountryCode,'CA'), " +  # Good
        # "TR.PriceClose(SDate=0D)>=TR.Price50DayAverage, " +
        "TR.PriceClose(SDate=-1D)<=TR.Price50DayAverage, CURN=CAD"  # Good
    )
    print("List of instruments:")
    print(list(response))
    df = rd.get_data(
        response,
        ['BID', 'ASK', 'TR.Revenue'],
        parameters={'curn':'eur'})
    display(df)
    rd.close_session()


    May I ask where you found that one line? Did you follow these steps and is that what returned that Screener string?

  • @jonathan.legrand it is the sample script provided by client. Other similar scripts are also getting the same error. See attached file.Python.txt




  • @raksina.samasiri Weird. All scripts are working now. Yesterday I got the error message when I run them on Eikon and RW Codebook apps.