[Qgis-user] pyQGIS - set attributes by expression
Wouter Impens
wouter.impens at gmail.com
Tue Mar 5 06:36:31 PST 2019
A very late thank you Nyall, but indeed this works. Maybe it can be added
to the PYGIS Cookbook documentation?
Cheers
Wouter
Op do 7 feb. 2019 om 08:08 schreef Nyall Dawson <nyall.dawson at gmail.com>:
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20190305/c284004b/attachment.html>
More information about the Qgis-user
mailing list