我最近开始学习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值,但我不知道如何解决问题。
谢谢,
探
答案 0 :(得分:0)
我很确定所有值都以字符串形式返回,但是在空值的情况下,它可能会返回为None
,这可以解释您所获得的错误。
您可以使用try..except
块或在函数内部创建条件语句来忽略None
值。
以下是try..except
:
def FindLabel ( [FacilityName] ):
try:
S = [FacilityName]
S = S.upper()
return S
except AttributeError:
pass