Вы не присваиваете новые значения строкам, прежде чем пытаться их обновить.
Я думаю, что это проблема синтаксиса.
Эти две строки:
row[15] == "N" and row[18] == "AER::"
row[15] == "Y" and row[18] == "BUR::"
Просто тестируете, если значение row[15]
равно "N"
или "Y"
, а значение row[18]
равно "AER::"
или "BUR::"
.Эти строки просто возвращают True
или False
, значения строк не изменяются.
Если вы хотите назначить новые значения для row[15]
и row[18]
, вы должны сделать следующее:код ниже:
import arcpy
fc = 'C://file//path//folder.gdb//featureclass'
fields = ['OBJECT', 'PROJECT', 'LENGTH', 'ID', 'etc.', 'FIELD', 'FIELD2',
'FIELD3', 'FIELD4', 'DV......']
with arcpy.da.UpdateCursor(fc, fields) as rows:
for row in rows:
if row[10] == "AERIAL":
row[15] = "N" #assign value "N" to row[15]
row[18] = "AER::" #assign value "AER::" to row[18]
cursor.updateRow(row)
elif row[10] == "BURIED":
row[15] = "Y" #assign value "Y" to row[15]
row[18] = "BUR::" #assign value "BUR::" to row[18]
cursor.updateRow(row)