ArcGIS Python标签表达式错误

时间:2014-06-05 16:46:09

标签: python arcgis

我最近开始学习Python并开始使用它在ArcMap中创建标签表达式。我今天遇到了一个我无法弄清楚的错误(看起来应该很简单)。当我尝试创建以下表达式时:

def FindLabel ( [FacilityName] ):
  S = [FacilityName] 
  S = S.upper()
  return S

我收到如下错误:

Error 0 on line 0.
Error running expression:  FindLabel(ESRIExpressionArg0)
Traceback (most recent call last):
 File "<expression>", line 1, in <module>
 File "<string>", line 3, in FindLabel
AttributeError: 'NoneType' object has no attribute 'upper'.

[FacilityName]是一个域名字段,允许使用Null值。我理解,我认为'NoneType'意味着[FacilityName]在尝试返回之前被赋予None值,但我不知道如何解决问题。

谢谢,

1 个答案:

答案 0 :(得分:0)

我很确定所有值都以字符串形式返回,但是在空值的情况下,它可能会返回为None,这可以解释您所获得的错误。

您可以使用try..except块或在函数内部创建条件语句来忽略None值。

以下是try..except

def FindLabel ( [FacilityName] ):
    try:
        S = [FacilityName] 
        S = S.upper()
        return S
    except AttributeError:
        pass