如何避免" System.ArgumentException:不是有效的表达式"在Spotfire SDK中使用带方括号的列名?

时间:2014-09-26 11:41:37

标签: ironpython tibco spotfire

我有一个有效的IronPython脚本,用于加载Excel文件并将其内容添加到现有数据源。加载Excel文件时,我使用带有 ExpressionTransformation DataFlowBuilder 来执行某些数据转换,例如将列从Int转换为Real。

除非列名包含方括号,否则每当我尝试使用包含方括号的名称时,我得到" System.ArgumentException:不是有效的表达式:Cast([Process Time [h] ]] as Real)" 例外(其中" 处理时间[h] "(不带引号)是Excel列的名称)。

CODE

transformation = ExpressionTransformation()

transformation.ColumnReplacements.Add(
         "Process Time [h]",
         "Cast([Process Time [h]] as Real)",
         ColumnSelection([DataColumnSignature("Process Time [h]", DataType.Integer)])
)  

我尝试过的事情

  • 使用双引号"Cast([\"Process Time [h]\"] as Real)"
  • 引用列名称
  • 使用单引号"Cast(['Process Time [h]'] as Real)"
  • 引用列名称
  • 使用\ "Cast([Process Time \[h\]] as Real)"
  • 转出方括号
  • 使用\\ "Cast([Process Time \\[h\\]] as Real)"
  • 转出方括号

有什么想法吗?或者我应该联系Tibco Spotfire支持吗?

1 个答案:

答案 0 :(得分:2)

Cast([Process Time [h]]] as Real)应该有效。请注意[]的不平衡数量。