2017-05-12 20 views
-1

ここにNameErrorが届くのはなぜですか? 基本のpython:ArcPy CalculateField_management。 NameError:名前が定義されていません

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

エラー状態:NameError: name 'm' is not defined なぜ私はちょうど上記の行で'm'を定義したとして、これは、ありますか?

+1

あなたは引数_string_を渡している、 'M'を渡していない「FIELD_A *メートル!」。おそらく、エラーは 'arcpy.CalculateField_management'の内側から来ています。これは 'm'について何も知らないものです。 –

+0

ジョシュ、ありがとう。では、どのように変数 'm'をCalculateFieldに渡すことができますか? –

+0

おそらく、文字列 '!FIELD_A! * 0.01'代わりに? –

答えて

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

あなたはCalculateFieldツールにパラメータとして!FIELD_A! * mを通過してきたが、そのツールはmが何であるかを知らない - それは独立した機能です。

あなたの代わりに変数としてmを扱いたい場合は、文字列にそれを置き換えるには:

'!FIELD_A! * {}'.format(m) 
関連する問題