banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 20 July 2016 13:04

LEVEQUE.Nicolas
Juste Inscrit !
Lieu: COMPIEGNE
Date d'inscription: 19 Jul 2006
Messages: 7

erreur python Mise à jour de champ par rapport à d'autres champs

Bonjour,

Je cherche à mettre à jour un champ Q en fonction de deux autres champs Q1 et Q2. Si Q1 est vide alors Q = Q2 sinon Q=Q1
j'ai une erreur de syntaxe mais je ne trouve pas le problème.
pouvez vous m'aider  ?merci


Code:

import arcpy
arcpy.env.workspace = 'W:\DVO\SIGISTE\_Data_Project\Temp\2016_Outils_Ellipses\Outil_Ellipse.gdb'
fc = 'W:\DVO\SIGISTE\_Data_Project\Temp\2016_Outils_Ellipses\Outil_Ellipse.gdb\Captage'
fields = ['Q', 'Q1', 'Q2']
with arcpy.da.UpdateCursor(fc, fields) as cursor:
        for row in cursor:
               If row[1]== "none":
                      row[0]=row[2]
               Else:
                      row[0]=row[1]
               cursor.updateRow(row)

Hors ligne

 

#2 Wed 20 July 2016 17:58

lebon henri
Participant actif
Lieu: Vendée
Date d'inscription: 14 Jan 2008
Messages: 99

Re: erreur python Mise à jour de champ par rapport à d'autres champs

Bonjour,
Voici un début de correction avec quelques explications

Code:

import arcpy
arcpy.env.workspace = r'W:\DVO\SIGISTE\_Data_Project\Temp\2016_Outils_Ellipses\Outil_Ellipse.gdb' ##mettre un "r" devant les chemin
fc = r'W:\DVO\SIGISTE\_Data_Project\Temp\2016_Outils_Ellipses\Outil_Ellipse.gdb\Captage'
fields = ['Q', 'Q1', 'Q2']
with arcpy.da.UpdateCursor(fc, fields) as cursor:
        for row in cursor:
              ##attention if ou else s'écrivent tout en minuscule, python est très sensible à ça
               if row[1] is None: ##reste à voir ce que renvoie arcgis exactement quand le champs est vide, à vérifier, je suis pas sur que ça marche
                      row[0]=row[2]
               else:
                      row[0]=row[1]
               cursor.updateRow(row)

Hors ligne

 

#3 Thu 21 July 2016 11:01

LEVEQUE.Nicolas
Juste Inscrit !
Lieu: COMPIEGNE
Date d'inscription: 19 Jul 2006
Messages: 7

Re: erreur python Mise à jour de champ par rapport à d'autres champs

Merci beaucoup cela fonctionne.
c'est très appréciable d'avoir une telle aide, encore merci.
j'avais vu d'autres messages sans réponses sur le forum dont l'objectif était un peu similaire, j'espère qu'ils pourront s'en inspirer de ce code.

Hors ligne

 

Pied de page des forums

Powered by FluxBB