2016-02-06 3 views
-1

Si la colonne de fonction dans le tableau est traversée en ferry, j'ai besoin d'ajouter Oui à la colonne Ferry que j'ai déjà ajoutée à la table. Si la colonne de caractéristiques ne dit pas traversée, je dois ajouter Non à la colonne du traversier. Voici le morceau de code avec lequel j'ai un problème. Aucune suggestion? Oui, je suis nouveau sur python, tout conseil ou conseil serait grandement apprécié car il m'aidera à apprendre. À votre santé.Ajouter les données d'attribut shp à la colonne avec python

#need to update FERRY column with yes or no values if ferry crossing is available in feature field 
delimfield = arcpy.AddFieldDelimiters(fc, "FERRY") 
cursor = arcpy.da.UpdateCursor(fc, ["FERRY"]) 
for row in cursor: 
    if row[0] == "ferry crossing": 
     cursor.updateRow("FERRY") 
     print "YES" 
    if row[0] is not "ferry crossing": 
     cursor.updateRow("FERRY") 
     print "NO" 

del row 
del cursor 

#if feature is ferry crossing == YES in FERRY field 
#if feature is not ferry crossing == NO in FERRY field 
+1

Veuillez mieux définir le contexte dans lequel vous utilisez Python, codez-vous un script dans une application? S'il vous plaît spécifier dans votre question. – tuned

+0

Je suis en train de coder un script pour arcgis en utilisant arcpy. Je n'ai pas inclus tout le code de la partie que j'ai déjà travaillé. Peut-être que j'aurais dû mettre cela dans le côté SIG de l'échange de pile idk ... – Staley

+1

Oui, je pense que c'est mieux. Essayez aussi d'introduire mieux dans le post le contexte dans lequel vous rencontrez ce problème. – tuned

Répondre

1

Vous devez saisir les deux champs dans votre curseur: le champ feature pour votre test et le champ FERRY que vous souhaitez mettre à jour. Ensuite, votre code existant va tester correctement, mais vous devrez le modifier pour effectuer la mise à jour. Utilisez les positions de liste des champs pour y accéder dans l'objet ligne.

with arcpy.da.UpdateCursor(fc, ["FEATURE", "FERRY"]) as cursor: 
    for row in cursor: 
     if row[0] == "ferry crossing": # test the FEATURE field 
      row[1] = "FERRY" # set the FERRY field 
      print "YES" 
     else: 
      print "NO" 
     cursor.updateRow(row) # commit the changes 
+0

Evan vous le faites paraître si facile. Merci de votre aide. – Staley