【问题标题】:ArcPy CalculateField_management. NameError: name is not definedArcPy 计算字段管理。 NameError:名称未定义
【发布时间】:2017-05-12 03:46:37
【问题描述】:

为什么我在这里收到NameError? 基本的python:

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'

【问题讨论】:

  • 你没有传递m,你传递的是字符串 "!FIELD_A! * m"。推测错误来自arcpy.CalculateField_management内部,它对m一无所知。
  • 乔希,谢谢。那么如何将变量“m”传递给CalculateField?
  • 或许可以改为传递字符串!FIELD_A! * 0.01
  • 这个问题可能已经在Geographic Information Systems Stack Exchange 被问过(并回答过)很多次了。

标签: python nameerror arcpy


【解决方案1】:
m = 0.01
arcpy.CalculateField_management(table, 'FIELD_B', '!FIELD_A! * m', 'PYTHON')

您已将!FIELD_A! * m 作为参数传递给CalculateField 工具,而该工具不知道m 是什么——它是一个独立的函数。

如果您想将 m 视为变量,请将其替换为字符串:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2020-02-24
    • 2021-04-15
    • 2019-01-26
    • 2021-10-05
    相关资源
    最近更新 更多