У меня есть векторный слой с полем атрибута, называемым «тип». Я пытаюсь удалить все функции, значение которых для "type" не является "primary". Вот мой маленький скрипт, который я сделал благодаря ответам здесь и здесь :
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()
Поскольку ошибок нет, я предполагаю, что выражение моего фильтра не отформатировано правильно. Это скорее всего так, или есть проблема с моим скриптом logi c? Я использую Python 3.7.0 на QGIS 3.4.12.