Проблема в коде
Ниже код который выводит название столбца и идентификационный номер строки в которой неправильные значения. Столбцы скрипт проверяет только те в которых есть предустановленные значения (domain)
fc = 'D:\Arcgis\New Personal Geodatabase.mdb\TEST'
domain_2 = arcpy.da.ListDomains("D:\Arcgis\New Personal Geodatabase.mdb")
field_1 = 'ID_COD'
fields = arcpy.ListFields(fc)
cursor = arcpy.SearchCursor(fc)
for field in fields:
if field.domain:
print field.name
for domain in domain_2:
if field.domain == domain.name:
for val in domain.codedValues.keys():
a=set()
a.add(val)
for row in cursor:
b=row.getValue(field.name)
if b not in a:
print (row.getValue(field_1))
Итогом работы является список: Название столбца и идентификационный номер строки где находится неправильно заполненная ячейка
STATUS
1111111
2222222
COMPANY_MANAGER
COMPANY
Однако нормально отрабатывает только первый столбец а два других выводит только название. В чем может быть проблема
Ответы (1 шт):
Автор решения: Grechkin 26
→ Ссылка
fc = 'D:\Arcgis\New Personal Geodatabase.mdb\TEST'
domain_2 = arcpy.da.ListDomains("D:\Arcgis\New Personal Geodatabase.mdb")
field_1 = 'ID_COD'
fields = arcpy.ListFields(fc)
a=set()
for field in fields:
cursor = arcpy.SearchCursor(fc,fields)
if field.domain:
print field.name
for domain in domain_2:
if field.domain == domain.name:
for val in domain.codedValues.keys():
a.add(val)
for row in cursor:
if row.getValue(field.name) not in a:
print (row.getValue(field_1))