在IronPython 2.0.1中处理JSON的最佳方法是什么.原生Python"标准库"json看起来尚未实现.
如果我想使用Newtonsoft Json.NET库,我该怎么做?我可以将程序集添加到GAC,但我的其他选择是什么?
我们的目标是使用DLR的Microsoft.Scripting和托管程序集来实现脚本机制.
现在,有人知道IronRuby 1.0和IronPython 2.6之间的性能差异吗?
根据我的理解,他们有不同的编译器,但IronPython似乎更成熟和测试,但如果有人有关于这个问题的文档或知识,那将不胜感激.
我正在通过IronPython为我的C#mapmaking应用程序提供可扩展性机制.一切正常,但我有一个特定的要求,我无法实现:我希望用户能够指定两件事:
getTextLabel(element))这两个设置必须是分开的,但我不知道是否可以使用PythonScript相关类来完成此操作.
我是Python的新手,或许有另一种方法可以实现这一目标?出于性能原因,我想避免多次加载和编译Python脚本文件(因为可能存在上面提到的几个不同的"函数调用"设置,CompiledCode如果可能的话我想重用该文件的实例).
更新:@digEmAll给出了我的问题的正确答案,所以我接受它作为一个有效的答案.但如果你关心表现,你也应该看看我自己的答案.
我喜欢PyCharm并且以前用过我的Python项目,但是我刚开始搞乱IronPython而且我无法弄清楚如何使PyCharm或任何其他IDE(除了VS工作正常)识别.NET库.
例如,我有代码:
from System.Environment import *
path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,但"系统"部分用"未解析的参考系统"消息下划线为灰色.IronPython文档解释说System不是模块,而是命名空间.如果type(system)我得到了<type 'namespace#'>.那么有没有办法让PyCharm/PyDev识别命名空间呢?另外,PATH很好,一切都很好.
我有一个.NET项目,我正在使用IronPython来执行一些数据处理.目前,C#代码循环并为每个需要动态计算的行和列生成IronPython脚本.但是,我想通过传入DataTable对象和一个针对它执行的脚本来提高进程的效率.不幸的是,我收到'DataTable' object is unsubscriptable错误,没有处理.
C#片段生成并执行IronPython脚本:
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");
Run Code Online (Sandbox Code Playgroud)
要对表执行的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
Run Code Online (Sandbox Code Playgroud)
如何修复'DataTable' object is unsubscriptable错误,还是有更好的方法来处理将DataTable传递给IronPython?
我想将ironpython作为脚本运行,而不是将ironpython代码编译成可执行文件。有没有办法将ironpython作为脚本运行?
如果我在C#线程中启动IronPyThon引擎,python脚本将启动许多线程.但是,当我杀死C#线程时,python脚本中的所有线程仍在运行.如何杀死Python脚本中的所有线程?
我可以使用Microsoft.AnalysisServices.dll,使用Python连接到SQL Server Analysis Service ,但现在无法在多维数据集上执行查询。
我尝试过Execute以下方法:
amoServer.Execute('select from finance')
Run Code Online (Sandbox Code Playgroud)
发出Execute方法后,我出现此错误:
<Microsoft.AnalysisServices.XmlaError object at 0x000000000000002B [Microsoft.AnalysisServices.XmlaError]>
Run Code Online (Sandbox Code Playgroud)
注意:我在Windows Server 64Bit上将IronPython与Python 2.7一起使用。
有什么问题?
我正在寻找一种方法来删除我在SPOTFIRE上的数据表中的行,我找不到合适的方法来做到这一点.
我试图编写一个脚本来执行它,但它太慢了,我有更多的20k行要删除.
有人知道为什么它太慢而且还有另一种方法(更快的方式)
from Spotfire.Dxp.Data import RowSelection
table=Document.Data.Tables["my Table name"]
i=0
for row in table.GetRows():
i+=1
rowToDelete=Document.Data.Tables["my Table name"].Select("[index]="+`i`).AsIndexSet()
Document.Data.Tables["my Table name"].RemoveRows(RowSelection(rowToDelete))
Run Code Online (Sandbox Code Playgroud) 现在我可以使用以下代码来访问我的c#类型,IronPython如下所示
import clr
clr.AddReference('myDLL.dll')
import myType
obj = myType()
Run Code Online (Sandbox Code Playgroud)
但是我不希望脚本开发人员clr.AddReference('myDLL.dll')在Python源代码中使用行,并将myDLL.dll(和/或c#类)直接c#注入ScriptEngine,因此以前的代码类似于:
import myType
obj = myType()
Run Code Online (Sandbox Code Playgroud)
我该怎么做到这一点?
ironpython ×10
c# ×4
python ×4
.net ×3
datatable ×1
ironruby ×1
json ×1
namespaces ×1
performance ×1
pycharm ×1
pydev ×1
spotfire ×1
sql ×1
sql-server ×1
ssas ×1
tibco ×1