我在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]
。请更新帖子以包含此信息。