Message posté par : Claire15 (delmarre.claire(a)live.fr)
----------------------------------------
Bonjour, je viens de me lancer dans le script python et pour la première fois je dois
l’utiliser au travers de qgis…
Voila mon problème : j’aimerais attribuer une liste (int) à un champ que je viens de créer
je pense être sur la bonne voie seulement à chaque fois que je lance mon script et que je
vérifie ma table attributaire, le champ « myint » n’est pas remplis par ma liste mais par
NULL ..
J’ai éplucher cookbook plusieurs fois mais je suis toujours perdu …
Voici mon code :
import os
#selectionner la couche active
layer = iface.activeLayer()
#définir la variable nom pour la colonne nom_zone
liste=[]
for feature in layer.getFeatures():
Nom=feature[‘Nom’]
a = Nom.count(« a »)
o = Nom.count(« o »)
i = Nom.count(« i »)
u = Nom.count(« u »)
y = Nom.count(« y »)
e = Nom.count(« e »)
x = [a,i,o,u,y,e]
m=max(x)
s=x.index(m)
liste.append(s)
print(liste)
#début de l’édition de la couche
layer.startEditing()
from qgis.PyQt.QtCore import QVariant
if caps & QgsVectorDataProvider.AddAttributes:
res = layer.dataProvider().addAttributes(
[QgsField(« myint », QVariant.Int)])
layer.updateFields()
id_new_col=layer.dataProvider().fieldNameIndex(« myint »)
#ajout de la variable
for feature in layer.getFeatures():
layer.changeAttributeValue(feature.id(), id_new_col,liste )
#update de la modif
layer.commitChanges()
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=338881#p338881
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