SPSS Modeler通过Python脚本设置参数后Select节点筛选无结果问题
SPSS Modeler 脚本设置筛选参数输出为空问题解决
错误原因
你的代码存在两处语法错误,导致筛选条件没有按照预期执行,最终输出空表:
- 你给
Macroregion字段名加了单引号,导致系统把它识别为普通字符串,而不是数据集中的字段,相当于在比较两个固定字符串,自然没有匹配结果 - 流参数的引用格式错误,SPSS Modeler 中调用流参数的标准语法是
@{参数名},你写的$pMacroregion不会被解析为你定义的流参数
修正后代码
import modeler.api stream = modeler.script.stream() selectnode = stream.findByID("idTDVEN4CV5I") # select节点 tablenode = stream.findByID("idT4WQLYPH6Z") # Table输出节点 selectnode.setPropertyValue("mode", "Include") pMacroregion = "CENTRAL EUROPE" stream.setParameterValue("pMacroregion", pMacroregion) # 修正筛选条件写法:字段不加单引号,参数用@{}格式引用 selectnode.setPropertyValue("condition", "Macroregion = '@{pMacroregion}'") tablenode.run([])
验证说明
如果修改后还有问题,可以先手动在Select节点的条件编辑框输入Macroregion = '@{pMacroregion}',手动运行流确认筛选结果正常,再执行脚本即可。
内容的提问来源于stack exchange,提问作者Palczando
相关产品推荐
相关产品推荐

