ArcGIS Python标签表达式错误



我最近开始学习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值,但我不知道如何解决这个问题。

谢谢,探

我很确定所有的值都会作为字符串返回,但在null值的情况下,它可能会作为None返回,这将解释你得到的错误。

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

这里是try..except:

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

最新更新