错误

错误:‘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

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

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

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项