ERROR

El objeto 'NoneType' no tiene el atributo 'replace'

Last Published: April 25, 2020

Mensaje de error

Al intentar utilizar la función replace() en un script de Python en un campo de cadena de caracteres, se produce un fallo y aparece el siguiente error:

Error: El objeto 'NoneType' no tiene el atributo 'replace'
Error message

Causa

El error se produce cuando hay valores nulos en el campo seleccionado. La siguiente imagen muestra una tabla de atributos con un campo que contiene valores nulos.

Attribute table with Null values

La siguiente muestra de código presenta cómo se puede reproducir el error:
import arcpy

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

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

 

Solución o solución alternativa

Utilice la cláusula de selección para evitar la ejecución de la función replace() en los valores nulos del campo. La siguiente muestra de código presenta cómo hacerlo:

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. de artículo:000014467

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga

Información relacionada

Descubrir más sobre este tema