Eu tenho um número de colunas em várias tabelas dentro de um FGDB onde preciso extrair os valores exclusivos para cada coluna.
Por exemplo: os valores podem ser [1,2,2,2,3,4] e estou tentando retornar [1,2,3,4]
Eu poderia fazer esse trabalho de várias outras maneiras no ARCGIS, mas estou tentando me estender.
Eu encontrei um pedaço de python na Web que acho que fará o trabalho, mas estou lutando para executá-lo (continuo recebendo um erro de sintaxe inválido enquanto continuo recebendo o erro de sintaxe na linha 3), sem dúvida um erro de usuário realmente simples.
Snippet de código abaixo
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})
Esta é a mensagem de erro que recebo do texto sublime:
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]
Atualizações da pergunta original
Atualizei meu código com a resposta fornecida abaixo, mas estou recebendo um erro secundário.
Novo trecho de código:
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)
Estou recebendo uma nova mensagem de erro relacionada a um erro de tempo de execução
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'
[Finalizado em 8.0s com código de saída 1]
Suponho, pela leitura que fiz, que isso se refere à configuração do env.workspace?
env.workspace
eu acho. Tente tirar o r
antes do caminho ou altere o \` to
`no caminho (e deixe o r
lá). Esse geodatabase existe?
[1,2,2,2,3,4]
, você está tentando retornar [1,2,3,4]
. Atualize a postagem para incluir essas informações.