arcpy遍历shp赋值字段,报错AttributeError: 'da.SearchCursor' object has no attribute 'updateRow'
时间: 2024-09-25 12:02:10 浏览: 87
arcpy属性赋值脚本(管线)、含tbx工具
5星 · 资源好评率100%
在ArcGIS Python库(arcpy)中,`SearchCursor` 类用于从数据访问层(Data Access Layer,简称dal)检索数据,但它并不直接支持更新行(`updateRow`)。当你试图通过 `SearchCursor` 对象修改数据时,可能会遇到 `AttributeError`,因为它的设计主要是用于读取,而非修改。
如果你想要在循环中遍历 Shapefile 或其他dal并更新字段,应该使用 `UpdateCursor` 替代 `SearchCursor`。`UpdateCursor` 允许你直接修改记录。例如:
```python
import arcpy
# 假设fc_shp是你要操作的Shapefile
with arcpy.da.UpdateCursor(fc_shp, ["Field_to_Update"]) as cursor:
for row in cursor:
# 这里对row['Field_to_Update']进行处理,然后
row[0] = 新的值 # 更新你想修改的字段
cursor.updateRow(row)
```
记得在每次循环结束后调用 `cursor.updateRow(row)` 来保存更改。如果仍然遇到问题,检查是否已经关闭了之前的游标(如果不是,需要先关闭),并且确保有足够的权限进行数据更新。
阅读全文