Message posté par : Yoann Lecomte
----------------------------------------
Bonjour,
Il faudrait savoir comment vous obtenez la variable obj.
Voici un exemple de script qui montre la mise à jour sur des feature existantes dans la
couche et la création de nouvelle feature. Ce script fonctionne dans la console python
avec une couche shapefile contenant les attributs INSEE et IDENT. Ce doit être la couche
active dans qgis.
-----------------
Code :
layer = iface.activeLayer() # ce doit être votre shapefile
liste = {'attribut': 'IDENT', 'valeur':
'CM_MDL_MC4_A_69152_99'}, {'attribut': 'INSEE', 'valeur':
'00002'}
with edit(layer):
for obj in layer.getFeatures():
# on set les valeurs, une QgsFeature se comporte comme un dictionnaire donc on
peut faire feat['champ'] = valeur
for elem in liste:
obj[elem['attribut']] = elem["valeur"]
# on enregistre les modifs
layer.updateFeature(obj)
# Ici, on crée un nouvel objet dans la couche
obj = QgsFeature()
obj.setFields(layer.fields())
obj.setGeometry(QgsPoint(0,0))
for elem in liste:
obj[elem['attribut']] = elem["valeur"]
layer.addFeature(obj)
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=368254#p368254
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net