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

Recibir notificaciones y encontrar soluciones a problemas nuevos o comunes

Obtenga respuestas resumidas y soluciones de vídeo de nuestro nuevo chatbot de IA.

Descargar la aplicación de soporte de Esri

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga