Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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: Lyon
Date d'inscription: 14 Jan 2008
Messages: 98

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