Using Function in Field Calculator gives error 000539?

المشرف العام

Administrator
طاقم الإدارة
I'm trying to populate a field using a function. When I run this in Pyscripter, it works fine:

d = {}# Function #def find_dups(val): d[val] = d.setdefault(val, -1) + 1 return d[val]#expression = "find_dups(!LINK_ID!)"arcpy.CalculateField_management(streets, "dups", expression, "PYTHON_9.3", "#")However, when running it from arc toolbox I get this...

ExecuteError: ERROR 000539: Error running expression: find_dups(!LINK_ID!)

NameError: name 'find_dups' is not defined

Failed to execute (CalculateField).*

So it looks like it can't find the function. I tried using the field calculator in arc to get a python snippet and it gave me this...

arcpy.CalculateField_management(streets,"dups","find_duplicates(!LINK_ID!)","PYTHON_9.3","d = {}/n/ndef find_duplicates(val):/n d[val] = d.setdefault(val, -1) + 1/n return d[val]/n")When I tried to put this into my script, however, it didn't work??

ExecuteError: Failed to execute. Parameters are not valid.

ERROR 000989: Python syntax error: Parsing error

SyntaxError: invalid syntax (line 1)


أكثر...
 
أعلى