Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- layer1 = QgsVectorLayer('...','layer1','ogr')
- layer2 = QgsVectorLayer('...','layer2','ogr')
- layer3 = QgsVectorLayer('...','layer3','ogr')
- layer4 = QgsVectorLayer('...','layer4','ogr')
- layer5 = QgsVectorLayer('...','layer5','ogr')
- layer6 = QgsVectorLayer('...','layer6','ogr')
- layers_edit = QgsProject.instance().mapLayersByName('layer1' and 'layer2' and 'layer3')
- sa = layers.dataProvider().fieldNameIndex('area_calc')
- Traceback (most recent call last):
- File "C:PROGRA~1QGIS3~1.0appsPython36libcode.py", line 91, in runcode
- exec(code, self.locals)
- File "<input>", line 1, in <module>
- AttributeError: 'list' object has no attribute 'dataProvider'
- layers.startEditing()
- Traceback (most recent call last):
- File "C:PROGRA~1QGIS3~1.0appsPython36libcode.py", line 91, in runcode
- exec(code, self.locals)
- File "<input>", line 1, in <module>
- AttributeError: 'list' object has no attribute 'startEditing'
- layers.dataProvider().addAttributes([QgsField ('eur1_km2',Variant.Double),QgsField('eur1_pol', QVariant.Double)])
- layers.updateFields()
- idx=layers.dataProvider().fieldNameIndex('eur1_km2')
- idx1=layers.dataProvider().fieldNameIndex('eur1_pol')
- for f in layers.getFeatures():
- f[idx] = 6
- attr_sa = f.attributes()[sa]
- attr_idx = f.attributes()[idx]
- f[idx1] = (attr_sa/1000000)*attr_idx
- layers.updateFeature( f )
- layers.commitChanges()
- layer_names = ['layer1', 'layer2', 'layer3']
- for layers in QgsProject.instance().mapLayers().values():
- if layers.name() in layer_names:
- sa = layers.fields().lookupField('area_calc')
- # do more stuff
- layer_edit = ['layer1', 'layer2','layer3']
- price = 6.0
- for layers in QgsProject.instance().mapLayers().values():
- if layers.name() in layer_edit:
- layers.dataProvider().addAttributes([QgsField('eur1_km2',QVariant.Double)])
- layers.dataProvider().addAttributes([QgsField('eur1_pol',QVariant.Double)])
- layers.updateFields()
- idx = layers.dataProvider().fieldNameIndex('eur1_km2')
- layers.startEditing()
- for f in layers.getFeatures():
- f[idx] = price
- layers.updateFeature(f)
- idx = layers.dataProvider().fieldNameIndex('eur1_km2')
- idx1 = layers.dataProvider().fieldNameIndex('eur1_pol')
- sa = layers.dataProvider().fieldNameIndex('area_calc')
- attr_idx = f.attributes()[idx]
- attr_sa = f.attributes()[sa]
- f[idx1]=(attr_sa/1000000*attr_idx)
- layers.updateFeature(f)
- layers.commitChanges()
- else: print('NONE')
Add Comment
Please, Sign In to add comment