ArcPy中len()函数返回值与实际字段数量不符的原因咨询
ArcPy中len(ListFields)返回值与实际字段数不符的原因及解决办法
核心原因
- 默认过滤系统字段:
arcpy.ListFields()默认仅返回用户创建的可见字段,会自动排除ObjectID、Shape、Shape_Length、Shape_Area这类系统维护字段。如果你的要素类实际21个字段包含这些系统字段,默认调用就会少统计。 - 隐藏/特殊类型字段未被返回:地理数据库中部分隐藏字段、域关联字段或子类型相关字段,默认也不会被
ListFields列出。
解决办法
1. 强制返回所有字段
调用ListFields时指定field_type="All"参数,即可获取包括系统字段在内的所有字段:
big = arcpy.ListFields('ลพบุรี_PSU_Select', field_type="All") boss = len(big) print(boss)
2. 验证字段列表
可以遍历输出所有字段名称,和要素类的实际字段对比,确认遗漏项:
for field in arcpy.ListFields('ลพบุรี_PSU_Select', field_type="All"): print(field.name)
内容的提问来源于stack exchange,提问作者Lek Lockfour
相关产品推荐
相关产品推荐

