Tengo varias columnas en varias tablas dentro de un FGDB donde necesito extraer los valores únicos para cada columna.
Por ejemplo: los valores pueden ser [1,2,2,2,3,4], y estoy tratando de devolver [1,2,3,4]
Podría hacer este trabajo de muchas otras maneras en ARCGIS, pero estoy tratando de extenderme.
He encontrado una pieza de python en la web que creo que hará el trabajo, pero estoy luchando para que se ejecute (sigo obteniendo un error de sintaxis no válido mientras sigo obteniendo el error de sintaxis en la línea 3). Un error de usuario realmente simple.
Fragmento de código a continuación
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})
Este es el mensaje de error que recibo del 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]
Actualizaciones de la pregunta original
Ahora he actualizado mi código con la respuesta proporcionada a continuación, pero recibo un error secundario.
Nuevo fragmento 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)
Recibo un nuevo mensaje de error relacionado con un error de tiempo de ejecución
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'
[Terminado en 8.0s con código de salida 1]
Asumo por la lectura que he hecho que esto se relaciona con la configuración del espacio de trabajo env.
env.workspace
lo que no creo. Intenta despegar r
antes del camino o cambiar el \` to
`en el camino (y deja el r
allí). ¿Existe esa geodatabase?
[1,2,2,2,3,4]
, ¿está tratando de devolver [1,2,3,4]
? Actualice la publicación para incluir esta información.