问题

问题:字段计算器已完成,但值没有变化

Last Published: April 25, 2020

描述

字段计算器是一款功能强大的工具,可用于同时修改所有字段值,而无需花时间进行单独计算。 但是,使用“字段计算器”时,需要谨慎对待字段类型、字段长度和域等细节。 在某些情况下,用户可能会看到“字段计算器”运行没有错误,但字段值不变的情况。

原因

使用“字段计算器”时需要注意的是,用户必须知道当前使用的字段类型。

例如,如果用户拥有一个包含两列的表,并希望仅在前两列匹配的情况下才在第三列中填充文本:
Image showing the input table with three fields.

在“字段计算器”中使用比较代码:

Image showing code in Field Calculator where, within the code block, the statement "if Field1==Field2:".
此操作完成后,在地理处理菜单 > 结果中看起来已经成功,但是第三列没有变化。
Results window showing that Field Calculator completed successfully.
这是因为尽管在某些情况下,这两个输入字段可能看起来相同(FieldName1 中为 1,FieldName 2 中为 1),但实际上二者的字段类型不同:
Screenshot of FieldName1 properties showing Type: StringScreenshot of FieldName2 properties showing Type: Short
因此,字符串“1”不等于短整型值“1”,并且由于在代码块中没有与“if”语句对应的“else”语句,因此不会返回任何用于填充该字段的内容。

解决方案或解决方法

务必检查“字段计算器”中的输入的字段类型。 可以使用 str(), int(), 等代码临时修改字段类型,以便将输入转换为相同类型,从而成功进行字段计算。 在此示例中,可以添加“else”语句。
Image showing the added line "else: return "The values are different""
如果“if”语句为 false,则此操作会提供一个输出,表明需要进一步的研究,具体研究 if 语句为 false 的原因,从而研究值及其类型。
Image showing the third column now is populated with "The values are different"

文章 ID:000014885

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容