IronPythonを使用してデータの処理を実行している.NETプロジェクトがあります。現在、C#コードはループして、動的計算を必要とする行と列ごとにIronPythonスクリプトを生成します。ただし、DataTableオブジェクトとそれに対して実行するスクリプトを渡すことで、プロセスをより効率的にしたいと思います。残念ながら、エラーが'DataTable' object is unsubscriptable
発生し、処理が行われません。
IronPythonスクリプトを生成して実行するためのC#スニペット:
DataTable dt = new DataTable();
dt.Columns.Add("count", typeof(int));
dt.Columns.Add("calc", typeof(int));
dt.Rows.Add(1, null);
ScriptEngine engine = Python.CreateEngine(options);
ScriptScope scope = engine.CreateScope();
scope.SetVariable("dt", dt);
ScriptSource source = engine.CreateScriptSourceFromString(code, SourceCodeKind.AutoDetect);
object result = source.Execute(scope);
DataTable table = scope.GetVariable<System.Data.DataTable>("dt");
テーブルに対して実行されるPythonスクリプト:
import clr
clr.AddReference('System.Data')
from System import Data
from System.Data import DataTable
for row in dt.Rows:
dt["calc"] = dt["count"] + 1
エラーを修正するにはどうすればよいですか'DataTable' object is unsubscriptable
、またはDataTableをIronPythonに渡すことを処理するためのより良い方法はありますか?