[Qgis-user] pyQGIS - set attributes by expression
Nyall Dawson
nyall.dawson at gmail.com
Wed Feb 6 23:08:15 PST 2019
On Wed, 6 Feb 2019 at 18:14, Wouter Impens <wouter.impens at gmail.com> wrote:
>> > I'm trying to iterate over the fields of a vector layer (using the index) and fill in the values by an expression
>> >
>> > my_features = a_layer.getFeatures()
>> > for a_feat in my_features:
>> > mijn_index = a_feat.fieldNameIndex('perc_nr')
>> > value = an_expr
Change this to:
my_features = a_layer.getFeatures()
context = QgsExpressionContext()
for a_feat in my_features:
mijn_index = a_feat.fieldNameIndex('perc_nr')
context.setFeature(a_feat)
value = an_expr.evalute(context)
...
Nyall
>>
>> What's "an_expr" here? Is it a QgsExpression object?
>>
>> Nyall
>>
>> > a_feat.setAttribute(mijn_index, value)
>> >
>> > a_layer.commitChanges()
>> >
>> > I don't get an error but nothing is filled in. I evaluated the expression and it's true. It also works in the field calculator.
>> >
>> > Anyone an idea?
>> >
>> >
>> > Kind regards
>> > Wouter
>> > _______________________________________________
>> > Qgis-user mailing list
>> > Qgis-user at lists.osgeo.org
>> > List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
>> > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
More information about the Qgis-user
mailing list