【发布时间】:2020-02-06 16:29:35
【问题描述】:
我有一个矢量图层,其中包含一个名为“类型”的属性字段。我正在尝试删除“类型”值不是“主要”的所有功能。这是我的小脚本,感谢here 和here 的回答:
from qgis.core import *
with edit(layer):
request = QgsFeatureRequest().setFilterExpression("\"type\" != 'primary'")
request.setSubsetOfAttributes([])
request.setFlags(QgsFeatureRequest.NoGeometry)
selection = layer.getFeatures(request)
layer.deleteFeatures([f.id() for f in selection])
但是,当我运行它时,什么也没有发生。我已经确定我使用的是正确的图层
>>>layer.id()
由于没有错误,我假设我的过滤器表达式格式不正确。可能是这种情况,还是我的脚本逻辑有问题?我在 QGIS 3.4.12 上运行 Python 3.7.0。
【问题讨论】: