The ArcPy layer.labelClasses.expression method does not accept properly formatted strings if they contain multiple quotation marks.
Last Published: June 24, 2015ArcGIS for Desktop
Bug ID Number
BUG-000088225
Submitted
June 9, 2015
Last Modified
June 5, 2024
Applies to
ArcGIS for Desktop
Version found
10.3.1
Status
Will Not Be Addressed
The development team has considered the issue or request and concluded it will not be addressed. The issue's Additional Information section may contain further explanation.
Additional Information
This is a known behavior. The additional quotes are needed to make sure the Python window reads the field 'FID' and not a variable in a list.
Workaround
The additional quotes are needed to properly form the string to be set as the expression. Without them it will not read 'FID' as a field. Instead, the method inteprates as the user is trying to use a variable in a list, because that is what that means in a Python interpreter. In the expression dialog, it does not expect the additional quotes because the Python parser understands that the brackets around a word indicate a field.
Use triple quotes around the expression to maintain the full string:
layer.labelClasses[0].expression = ''' "<CLR red='255'><FNT size = '17'>" + [OBJECTID] + "</FNT></CLR>" '''