Mam kilka kolumn w wielu tabelach w FGDB, w których muszę wyodrębnić unikalne wartości dla każdej kolumny.
Na przykład: wartości mogą wynosić [1,2,2,2,3,4], a ja próbuję zwrócić [1,2,3,4]
Mógłbym wykonać tę pracę na wiele innych sposobów w ARCGIS, ale staram się rozszerzyć.
Znalazłem w sieci fragment pytona, który, jak sądzę, wykona zadanie, ale staram się go uruchomić (ciągle otrzymuję nieprawidłowy błąd składniowy, ponieważ ciągle pojawia się błąd składniowy w wierszu 3), to bez wątpienia będzie to bardzo prosty błąd użytkownika.
Fragment kodu poniżej
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})
Oto komunikat o błędzie, który otrzymuję z wysublimowanego tekstu:
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]
Aktualizacje z pierwotnego pytania
Zaktualizowałem teraz swój kod o odpowiedź podaną poniżej, ale otrzymuję drugi błąd.
Nowy fragment kodu:
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)
Otrzymuję nowy komunikat o błędzie związany z błędem środowiska wykonawczego
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'
[Zakończono w 8.0s kodem wyjścia 1]
Zakładam, że z lektury, którą wykonałem, wiąże się to z ustawieniem środowiska pracy?
env.workspace
nie sądzę. Spróbuj albo zdjąć r
przed ścieżką, albo zmienić \` to
`na ścieżce (i zostaw r
tam). Czy ta geobaza istnieje?
[1,2,2,2,3,4]
, czy próbujesz zwrócić [1,2,3,4]
. Zaktualizuj post, aby uwzględnić te informacje.