13 获取要素类的OBJECTID名称的最佳方法是什么? 我知道您可以在光标中使用“ OID @”来获取该字段,但是您也可以从中获取名称吗? 我正在编写脚本,并且需要考虑将在查询中使用的各种OBJECTID名称,例如OBJECTID_2,OBJECTID_12,FID等。 使用Describe是获得名称的唯一方法吗? 例如: oid_field = [field.name for field in arcpy.ListFields("FC") if field.type == "OID"] 我只是想知道是否还有另一种方式。 谢谢。 arcpy objectid — 安博 source
23 我会说使用描述是最好的 oid_fieldname = arcpy.Describe(fc).OIDFieldName 非常简单。否则,您可以在使用listFields时直接进行过滤,因此可以尝试 oid_fieldname = arcpy.ListFields(fc,"","OID")[0].name 但这会在没有oidField的情况下返回错误(不太可能,但是...) — 拉杜久 source 1 我同意这非常简单。我刚刚注意到Describe可能会有点慢。谢谢。 — ianbroad ListFields比Describe快吗? — 学习者 根据我的经验,不,它们都相对较慢...我已经在两个不同的中等大小的gdb上进行了测试,结果Describe为约6.4,ListFields为约7.4(从头开始)。如果fc已在内存中,则时间分别为〜1.6和2.5。 — radouxju