У меня есть несколько столбцов в нескольких таблицах в FGDB, где мне нужно извлечь уникальные значения для каждого столбца.
Например: значения могут быть [1,2,2,2,3,4], и я пытаюсь вернуть [1,2,3,4]
Я мог бы сделать эту работу несколькими другими способами в ARCGIS, но я пытаюсь расширить себя.
Я нашел в сети кусок python, который, я думаю, справится с работой, но я изо всех сил пытаюсь заставить его работать (я получаю недопустимую синтаксическую ошибку, так как я получаю синтаксическую ошибку в строке 3), это, несомненно, будет действительно простая ошибка пользователя.
Фрагмент кода ниже
import arcpy
def unique_values(r'N:\GISProjects\Landuse\Plant_Biosecurity_Project\ArcGIS_Online.gdb\Holdings_Property_Merge' , 'LU_ALUMMaj'):
with arcpy.da.SearchCursor(table, [field]) as cursor:
return sorted({row[0] for row in cursor})
Это сообщение об ошибке, которое я получаю из возвышенного текста:
File "C:\Users\hawkinle\Desktop\STDTAS\Unique_Data.py", line 3
def unique_values(r'N:\GISProjects\Steve_Eastwood_Landuse\Plant_Biosecurity_Project\ArcGIS_Online.gdb\Holdings_Property_Merge' , 'LU_ALUMMaj'):
^
SyntaxError: invalid syntax
[Finished in 0.1s with exit code 1]
Обновления от оригинального вопроса
Теперь я обновил свой код ответом, приведенным ниже, но получаю вторичную ошибку.
Новый фрагмент кода:
import arcpy
def unique_values(table , field):
with arcpy.da.SearchCursor(table, [field]) as cursor:
return sorted({row[0] for row in cursor})
myValues = unique_values(r'N:\\GISProjects\\Landuse\\Plant_Biosecurity_Project\\ArcGIS_Online.gdb\\Holdings_Property_Merge' , 'LU_ALUMMaj')
print (myValues)
Я получаю новое сообщение об ошибке, связанной с ошибкой во время выполнения
Traceback (most recent call last):
File "C:\Users\hawkinle\Desktop\STDTAS\Unique_Data.py", line 7, in <module>
myValues = unique_values(r'N:\\GISProjects\\Steve_Eastwood_Landuse \Plant_Biosecurity_Project\\ArcGIS_Online.gdb\\Holdings_Property_Merge' , 'LU_ALUMMaj')
File "C:\Users\hawkinle\Desktop\STDTAS\Unique_Data.py", line 4, in unique_values
with arcpy.da.SearchCursor(table, [field]) as cursor:
RuntimeError: cannot open 'N:\\GISProjects\\Steve_Eastwood_Landuse\\Plant_Biosecurity_Project\\ArcGIS_Online.gdb\\Holdings_Property_Merge'
[Закончено в 8.0 с кодом выхода 1]
Я предполагаю из прочитанного мною чтения, что это относится к настройке env.workspace?
env.workspace
я не думаю. Попробуйте либо снять r
путь перед путем, либо изменить \` to
`в пути (и оставить r
там). Эта база геоданных существует?
[1,2,2,2,3,4]
, вы пытаетесь вернуть [1,2,3,4]
. Пожалуйста, обновите пост, чтобы включить эту информацию.