我想更新一项功能的属性。但是,我不知道使用功能对象来更新它。我必须使用数据提供程序来更新它。
layers = QgsMapLayerRegistry.instance().mapLayersByName('my_line')
layer = layers[0]
dp = layer.dataProvider()
it = dp.getFeatures()
for i in range(0, dp.featureCount()):
feat = it.next()
attrs = { 2 : 30 }
layer.dataProvider().changeAttributeValues({ feat.id() : attrs })
我可以使用QgsFeature
对象更改属性的值吗?
此外,是否可以使用迭代器对象进行循环?
如何在不使用索引的情况下更改值?我想通过命名它们的字段名来更改值。那会更舒服。非常感谢你!问候罗伯特
—
罗伯特BK
只需使用
—
赫尔曼·卡里略
my_index = layer.fieldNameIndex("my_field_name")
即可获取索引。
在这种情况下,我不能在字段中添加字符串我该怎么办?
—
Hamed Makian
Hamed,欢迎您来到GIS Stack Exchange!由于已经回答了该问题,因此请在gis.stackexchange.com/questions/ask中作为一个单独的新问题提出您的问题。
—
cm1