今回、pythonのEikon_Data_APIを使用したデータ取得について質問があるためメールを送らせていただきました。
【質問】
・1枚目画像の「赤丸で囲んである指数の<RICコード>を取得」するにはどのようにしたらよいでしょうか?
2枚目画像では取得することができませんでした。
Hi @tomoya.suzuki.lab
Alternatively, you can expand the chain by your Python code using Eikon Data API.
import pandas as pdimport time#Define getUnderlying() functiondef getUnderlying(baseRic): LONGNEXTLR = baseRic #For LONGLING1 to LONGLINK15 and LONGNEXTLR fields fields = ['LONGLINK{}'.format(x) for x in range(1, 15)] fields.append('LONGNEXTLR') all_underlying_rics = [] #if LONGNEXTLR is not empty, try to retrieve the data fields while LONGNEXTLR!='': df,e = ek.get_data(LONGNEXTLR,fields) LONGNEXTLR = df.iloc[0]['LONGNEXTLR'] if pd.notnull(df.iloc[0]['LONGNEXTLR']) else '' #If LONGLINK<x> field is not null, append its value to all_underlying_rics list for x in range(1, 15): currentField = 'LONGLINK{}'.format(x) all_underlying_rics.append(df.iloc[0][currentField]) if pd.notnull(df.iloc[0][currentField]) else None #delay between each API call for 1 second time.sleep(1) return all_underlying_rics
You can the function with below example:
ricList = getUnderlying('.TSEK')print(ricList)
I'm afraid .TSEK is a chain that does not have typical "0#" chain prefix, hence Eikon Data APIs do not recognize it as a chain. The only way I can think of retrieving the constituents for this chain is by using StreamingChain class of the content layer of RDP Library. Here's a quick example.
import refinitiv.dataplatform as rdprdp.open_desktop_session('YOUR_APP_KEY')def print_chain_constituents(streaming_chain, constituents): print(constituents)streaming_chain = rdp.content.StreamingChain( name = '.TSEK', on_complete = lambda streaming_chain, constituents : print_chain_constituents(streaming_chain, constituents))streaming_chain.open()
There are more examples of using StreamingChain class available in Codebook app in Eikon/Refinitiv Workspace under the __Examples__ folder -> 02 - Refinitiv Data Platform Library.
PyPI から refinitiv.dataplatform パッケージをインストールし,下記プログラムを実行しました.
このエラーを消すにはどうしたらよろしいでしょうか?
無事に取得できました!
ありがとうございます。
エラーの原因はまた改めて調べてみます