Функция обновления курсора в Arc Pro не показывает ошибки, но не выполняет - PullRequest
0 голосов
/ 22 февраля 2019

Я написал это для запуска в ArcGIS Pro, чтобы заполнить некоторые ячейки в таблице атрибутов, если одна из других ячеек имеет значение true.Когда я запускаю скрипт, в таблице ничего не происходит, и я не получаю сообщение об ошибке.Я забыл некоторую часть кода, который будет выполнять его?Спасибо!

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" and row[18] == "AER::"
            rows.updateRow(row)
        else:
            if(row[10] == "BURIED"):
                row[15] == "Y" and row[18] == "BUR::"
                cursor.updateRow(row)

1 Ответ

0 голосов
/ 26 февраля 2019

Вы не присваиваете новые значения строкам, прежде чем пытаться их обновить.

Я думаю, что это проблема синтаксиса.

Эти две строки:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...