У меня есть список полей из набора данных, которые являются полями строкового типа.
Мне нужно удалить пустые места из всех строк в этих полях.
Мой код:
import arcpy
dataset = r'Database Connections\xxxx.sde\GISUSA.PET_Wells'
fields = arcpy.ListFields(dataset)
for field in fields:
if field.type =="String":
list_of_fields.append(field.name)
for i in list_of_fields:
with arcpy.da.UpdateCursor(dataset, "{}".format(i)) as cursor:
for row in cursor:
row[0]=row[0].strip()
cursor.updateRow(row)
Я получаю сообщение об ошибке:
Ошибка выполнения Traceback (последний вызов был последним): файл "",
строка 4 в AttributeError: объект 'NoneType' не имеет атрибута
'Полоса'
Я угадываю значение i в строке
with arcpy.da.UpdateCursor(dataset, "{}".format(i)) as cursor:
не в правильном формате.
Я протестировал другое форматирование, '"{}". Format (i). Он также имеет ошибку при установке внутри UpdateCursor.
Этот код печатает правильно отформатированные значения с двойными кавычками, которые требуются для полей внутри UpdateCursor
>>> for i in list_of_fields:
... print '"{}"'.format(i)
... "WELL_UWI" "WELL_NAME" "ELEV_TYPE" "CURRENT_STATUS"
"SPUD_DATE" "COMPLETION" "FIELD" "WL_COUNTY" "WL_STATE"
"DRILLING_OPERATOR" "CURRENT_WELL_LEASE_NAME" "ЗАМЕЧАНИЕ"
for i in list_of_fields:
... with arcpy.da.UpdateCursor(dataset, '"{}"'.format(i)) as cursor:
... for row in cursor:
... row[0]=row[0].strip()
... cursor.updateRow(row)
Ошибка выполнения Traceback (последний вызов был последним): файл "",
строка 10, в RuntimeError: не удается найти поле '"WELL_UWI"'
Есть мысли?