错误

错误:‘NoneType’对象没有‘replace’属性

Last Published: April 25, 2020

错误消息

尝试在字符串字段的 Python 脚本中使用 replace() 函数失败,并返回以下错误:

错误:‘NoneType’对象没有‘replace’属性
Error message

原因

当选定的 字段中存在空值时会发生此错误。 下图显示了一个属性表,其中的字段包含空值。

Attribute table with Null values

以下代码示例显示 重现错误的方法:
import arcpy

cursor = arcpy.da.UpdateCursor ("[Feature]", "[Field Name]"

for row in cursor:
        row[0] = row[0].replace("%20", " ")
 cursor.updateRow(row)

 

解决方案或解决方法

使用选择子句可以避免对字段中的空值执行 replace() 函数。 以下代码示例显示了执行此操作的方法:

import arcpy

cursor = arcpy.da.UpdateCursor("[Feature]", "[Field Name]")

for row in cursor:
        if row[0] == None:
                row[0] = row[0]

 else:
row[0] = row[0].replace("%20", " ")

        cursor.updateRow (row)
Python script

 

文章 ID:000014467

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

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