Pages: 1
- Sujet précédent - QGIS 3.28/PYQGIS: Probl pour rajouter une valeur d attribut - Sujet suivant
#1 Fri 08 March 2024 08:57
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
QGIS 3.28/PYQGIS: Probl pour rajouter une valeur d attribut
Bonjour,
Désolé, mais je n'ai rien trouvé qui pourrait m'aider
Je dispose d'un couche mémoire dans laquelle, je rajoute un attribut (cela fonctionne), et quand je lit la table d'attribut, l'attribut VALREP a bien été rajouté et sa valeur est NULL.
Maintenait je fais une boucle sur une liste d'entité et pour chaque entité, je veux renseigner VALREP par "TOUS" ou bien par la valeur de l'attribut contenu dans la variable attribut
Ca ne fonctionne pas, VALREP est toujours à NULL et j'ai un message d'erreur
Code:
print (feat["VALREP"]) KeyError: 'VALREP'
Voici un extrait de code
Code:
layer.dataProvider().addAttributes([QgsField('VALREP',QVariant.String)]) layer.updateFields() QgsProject.instance().addMapLayer(layer) idx = layer.dataProvider().fieldNameIndex('VALREP') print (idx) for feat in liste: layer.dataProvider().addFeatures([feat]) if (attribut == "TOUS"): val = "TOUS" else: val = feat[attribut] attrs = { idx : val } print(attrs) print (feat["TYPVOIE"]) layer.dataProvider().changeAttributeValues({feat.id(): attrs}) layer.updateFeature(feat) print (feat["VALREP"])
pour info, j'ai aussi essayer avec
Code:
feat["VALREP"] = "ma_valeur"
Sans résultat non plus
VALREP est le 2ème attribut
Code:
Avec feat[1] = val KeyError: '1'
Si vous aves une idée, je suis rapidement preneur
Pour info, j'ai regardé dans des exemples sur internet, et ce que j'ai mis en place, pour moi, ne devrait pas poser de problème ;-) mais je ne vois pas l'erreur de code.
Merci et bonne journée, PYJ
Dernière modification par pyjoubert (Mon 11 March 2024 10:57)
Hors ligne
#2 Fri 08 March 2024 09:08
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28/PYQGIS: Probl pour rajouter une valeur d attribut
Pour completer, voici un extrait de maliste d'entités.
Code:
[<qgis._core.QgsFeature object at 0x000001C2C57D2DC0>, <qgis._core.QgsFeature object at 0x000001C2C57D2E50>, <qgis._core.QgsFeature object at 0x000001C2C57D2EE0>, <qgis._core.QgsFeature object at 0x000001C2C57D2F70>, <qgis._core.QgsFeature object at 0x000001C2C57D2040>, <qgis._core.QgsFeature object at 0x000001C2C6427310>, <qgis._core.QgsFeature object at 0x000001C2C6427160>, <qgis._core.QgsFeature object at 0x000001C2C6427280>, <qgis._core.QgsFeature object at 0x000001C2C64271F0>
Hors ligne
#3 Thu 14 March 2024 09:32
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28/PYQGIS: Probl pour rajouter une valeur d attribut
Bonjour,
C'était une erreur de code de ma part, je rajoutais l'attribut VALREP dans ma nouvelle couche temporaire, mais je le relisais sur ma couche initiale
Mea Culpa
Problème résolu
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.28/PYQGIS: Probl pour rajouter une valeur d attribut - Sujet suivant