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]是一个有特定值的字段,并且允许有空值。我想我明白了,'NoneType'意味着在尝试返回之前,[FacilityName]被赋了一个空值,但我不知道该怎么解决这个问题。
谢谢,
Ethan
1 个回答
0
我很确定所有的值都是以字符串的形式返回的,但如果遇到空值,它可能会返回None
,这就能解释你遇到的错误。
你可以在你的函数里使用try..except
块,或者写一个条件语句来忽略None
值。
下面是使用try..except
的例子:
def FindLabel ( [FacilityName] ):
try:
S = [FacilityName]
S = S.upper()
return S
except AttributeError:
pass