Select to view content in your preferred language

ArcGIS Maplex Python Labeling: If a value in a date field is null, how do I still show other values?

2966
20
03-09-2017 07:38 AM
MichaelHutchison
New Contributor

I'm trying to label point features with ArcGIS Maplex Engine, using [field1], [field2], [field3], [datefield].  My code is set up to label [field1] + '\n' + [datefield][-2:].  If [field1] is null, it'll label [field2] + '\n' + [field3] + '\n' + [datefield][-2:].  For whatever reason, my code doesn't work if a feature has a null value in [datefield].  How do I tell my code if the [datefield] is null, label [field1] AND if [datefield] and [field1] is null, label [field2] + '\n' + [field3]?  This is my code so far.

def FindLabel ( [field1], [field2], [field3], [datefield] 😞
  if str([field1]) == "None" :
    return [field2] + '\n' + [field3] + '\n' + [datefield][-2:]
  elif str([field1]) != "None" :
    return [field1] + '\n' + [datefield][-2:]

I tried adding this section but the engine doesn't seem to read it.

  elif [datefield] == "None" :

    return [field1]

  elif [datefield] == "None" and str([field1]) == "None" :

    return [field2] + '\n' + [field3]

My entire code is this.

def FindLabel ( [field1], [field2], [field3], [datefield] 😞
  if str([field1]) == "None" :
    return [field2] + '\n' + [field3] + '\n' + [datefield][-2:]
  elif str([field1]) != "None" :
    return [field1] + '\n' + [datefield][-2:]

  elif [datefield] == "None" :

    return [field1]

  elif [datefield] == "None" and str([field1]) == "None" :

    return [field2] + '\n' + [field3]

Thanks for the help.

0 Kudos
20 Replies
DanPatterson_Retired
MVP Emeritus

Which makes sense if you examine their inherent properties...

>>> None.__sizeof__()
16
>>> "".__sizeof__()
51
>>> max(None.__sizeof__(), "".__sizeof__())
51