記事
· 2024年3月11日 2m read

Embedded Pythonで$LIST()形式のデータを扱う方法

これは InterSystems FAQ サイトの記事です。

現時点(2024年3月)では、コミュニティに掲載されているPythonライブラリ「iris-dollar-list」を利用することでIRISの$LIST()形式のデータをPythonのリストとして利用することができます。

※標準ツールではありませんがご利用いただけます。詳細はコミュニティの記事「もう1つの $ListBuild() の実装:Pythonライブラリ「iris-dollar-list」」をご参照ください。

WindowsにインストールしたIRISで使用する場合は、以下の方法で「iris-dollar-list」をインストールしてください。

※Windows以外にインストールしたIRISでは、pipコマンドを利用した通常の方法でインストールできます。

コマンドプロンプトを開き、以下実行します。(IRISをデフォルトインストールしたときのディレクトリで掲載しています)

> cd C:\InterSystems\IRIS\bin
> irispip install --target C:\InterSystems\IRIS\mgr\python iris-dollar-list

実行例は以下の通りです。

USER>set ^ListTest=$LISTBUILD("test","あいうえお",101)

USER>:py

Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type quit() or Ctrl-D to exit this shell.
>>> from iris_dollar_list import DollarList
>>> glo=iris.gref("^ListTest")
>>> pythonlist=DollarList.from_bytes(glo[None].encode('ascii')).to_list()
>>> pythonlist
['test', 'あいうえお', 101]
>>>

この他に、現時点では日本語が使用できませんが、英数字であれば%SYS.PythonクラスのToList()メソッドを使用する方法もあります(将来のバージョンで日本語もサポートされる予定です)。

実行例は以下の通りです。

USER>set ^ListTest2=$LISTBUILD(123,"hello")

USER>:py

Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type quit() or Ctrl-D to exit this shell.
>>> glo=iris.gref("^ListTest2")
>>> pythonlist=iris.cls("%SYS.Python").ToList(glo[None])
>>> pythonlist
[123, 'hello']
>>> 
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください