Suite

Essayer de comprendre updateCursor() pour python


J'utilise ArcMap 10.2.2. J'essaie d'écrire un script qui parcourra les classes d'une base de données et modifiera l'attribution d'une ligne.

Ma variable "lyr" est-elle reconnue comme les classes de l'ensemble de données ?

Lorsque vous faites référence à un attribut à modifier, faites-vous référence à l'alias ou au nom réel de l'attribut ?

Exemple de code :

import arcpy dataset = arcpy.GetParameterAsText(0) arcpy.env.worspace = dataset classList = arcpy.ListFeatureClasses() pour lyr dans classList : rows = arcpy.UpdateCursor(lyr) pour ligne dans les lignes : othField = row.getValue("OTH ") if othField == "No Information": row.OTH = "noInformation" rows.updateRow(row) else: pass del row del rows

Vous référencez le nom de champ réel plutôt qu'un alias.

Lors du débogage d'un script, je code toujours en dur les chemins d'accès aux répertoires - une fois que cela fonctionne, puis ajoutez learcpy.GetParameterAsText(0). Aussi, il est préférable d'envelopper un curseur dans unavecdéclaration (documentation). Finalement, lepasserl'énoncé est étranger. Essayez ce qui suit :

import arcpy dataset = r'C:path	odataset' arcpy.env.workspace = dataset fcs = arcpy.ListFeatureClasses() pour fc dans fcs : avec arcpy.da.UpdateCursor(fc, "OTH") comme curseur : pour la ligne dans le curseur : if row[0] == "No Information": row[0] = "noInformation" cursor.updateRow(row)


Voir la vidéo: Python: Working with Feature Data using ArcPy (Octobre 2021).