Deutsch

Error: 'NoneType' object has no attribute 'replace'

Fehlermeldung

Wenn Sie versuchen, die Funktion "replace()" in einem Python-Skript für ein Zeichenfolgenfeld zu verwenden, schlägt der Vorgang fehl, und die folgende Fehlermeldung wird zurückgegeben:

Error: 'NoneType' object has no attribute 'replace'
Error message

Ursache

Der Fehler tritt auf, wenn das ausgewählte Feld NULL-Werte enthält. Die folgende Abbildung zeigt eine Attributtabelle mit einem Feld, das NULL-Werte enthält.

Attribute table with Null values

Im folgenden Codebeispiel wird gezeigt, wie der Fehler reproduziert werden kann:
import arcpy

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

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

 

Lösung oder Problemumgehung

Verwenden Sie die Auswahlklausel, um das Ausführen der Funktion "replace()" für NULL-Werte im Feld zu vermeiden. Im folgenden Codebeispiel wird dies veranschaulicht:

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

 

Referenzinformationen