中文

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

错误消息

尝试在字符串字段的 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

 

相关信息



 

上次修改时间: 5/14/2019

文章 ID: 000014467

软件: ArcMap 10.6.1, 10.6