我最近开始学习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