Aktualisieren von Feldern mit Werten aus der Python-Liste mit ArcPy UpdateCursor

Oct 14 2020

Ich versuche derzeit, die Felder eines Shapefiles mit einer Liste zu aktualisieren, die ich außerhalb der Arcpy-Umgebung zusammengestellt habe. Ich versuche sowohl UpdateCursor, den ich anscheinend nicht zum Laufen bringen kann, als auch FieldCalculator. FieldCalculator aktualisiert es nur mit "P [2]"

photoname = []

for p in shp_list:
    name = p[2]
    photoname.append(name)

    # arcpy.CalculateField_management(out_shapefile,"PhotoName","'p[2]'","PYTHON_9.3")

Ich habe auch versucht:

updt_cursor = arcpy.da.UpdateCursor(out_shapefile, fields)
for row in updt_cursor:
    val = str(row[0])
    for p in shp_list:
        if val in p:
            row[2] = p_name
            updt_cursor.updateRow(row)

Und UpdateCursor ist leer.

Ich weiß, dass ich aus der Liste eine TXT erstellen und dann die Felder mit der Zeile in der TXT-Datei mit InsertCursor aktualisieren kann, aber ich denke, es sollte eine effizientere Möglichkeit geben, dies zu tun. Für den Kontext erstelle ich Punkt-Shapefiles des X / Y aus den Exif-Daten und möchte den entsprechenden Bildnamen eingeben.

Antworten

2 AnnaForrest Oct 14 2020 at 08:26

Um Ihre Feldrechneranweisung zu korrigieren, ändern Sie sie in:

arcpy.CalculateField_management(out_shapefile,"PhotoName","'" + p[2] + "'","PYTHON_9.3")