2017-05-12 15 views
-1

Warum bekomme ich hier eine NameError? Die grundlegende Python:ArcPy CalculateField_management. NameError: Name ist nicht definiert

table = r'D:\output.gdb\table' 
m = 0.01 
arcpy.CalculateField_management(table, 'FIELD_B', '!FIELD_A! * m', 'PYTHON') 

Die Fehlerzustände: NameError: name 'm' is not defined Warum ist das, wie ich gerade 'm' in der Zeile oben definiert haben?

+1

Sie sind nicht 'm' vorbei, du bist die _String_ vorbei "Field_A * m!". Vermutlich stammt der Fehler von "arcpy.CalculateField_management", das nichts über 'm' weiß. –

+0

Josh, danke. Wie kann also die Variable 'm' an CalculateField übergeben werden? –

+0

Vielleicht übergeben Sie die Zeichenfolge '! FIELD_A! * 0,01' stattdessen? –

Antwort

1
m = 0.01 
arcpy.CalculateField_management(table, 'FIELD_B', '!FIELD_A! * m', 'PYTHON') 

Sie haben !FIELD_A! * m als Parameter an die CalculateField Tool übergeben, und das Werkzeug nicht weiß, was m ist - es ist eine unabhängige Funktion.

Wenn Sie wollen stattdessen m als Variable behandeln, ersetzen sie in den String:

'!FIELD_A! * {}'.format(m) 
Verwandte Themen