ArcPy UpdateCursor kullanarak Python listesindeki değerlerle Alanları güncelleme

Oct 14 2020

Şu anda bir şekil dosyasının alanlarını, arcpy ortamının dışında derlediğim bir liste ile güncellemeye çalışıyorum. Hem işe koyamadığım UpdateCursor hem de FieldCalculator'ı deniyorum. FieldCalculator yalnızca "P [2]" ile günceller

photoname = []

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

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

Ben de denedim:

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)

Ve UpdateCursor boş.

Listeden bir .txt oluşturabileceğimi ve ardından .txt dosyasındaki satırları InsertCursor ile güncelleyebileceğimi biliyorum, ancak bunu yapmanın daha verimli bir yolu olması gerektiğini düşünüyorum. Bağlam için, exif verilerinden X / Y'nin nokta şekil dosyalarını oluşturuyorum ve karşılık gelen görüntü adını doldurmak istiyorum.

Yanıtlar

2 AnnaForrest Oct 14 2020 at 08:26

Alan hesaplayıcı ifadenizi düzeltmek için şu şekilde değiştirin:

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