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

SOTM 2025 Tours

#1 Wed 16 April 2025 18:51

Marcopololo
Participant actif
Lieu: Etival Clairefontaine
Date d'inscription: 23 Nov 2021
Messages: 98

Python: erreur sur champ absent

Sur ce code j'ai dans certains cas une erreur

Code:

fields = [
                    'm','M',
                    'n','N',
                    'p','P'
                ]

Bonjour,

Dans certains cas m est vrai mais pas M et n et N sont vrai, je me
retrouve avec une erreur puisque la fonction batched ne trouve pas M alors que m existe, comment puis je mettre une condition pour éviter l'erreur ?
J'ai essayé avec un if items in locals() et en rajoutant une condition sur a mais cela ne marche pas

Code:

            def build_travaux_dates(e):
                # fields = fields.strftime("%d/%m/%Y")
                fields = [
                    'parcelles_Travaux_Date1','parcelles_Travaux_Travaux1',
                    'parcelles_Travaux_Date2','parcelles_Travaux_Travaux2',
                    'parcelles_Travaux_Date3','parcelles_Travaux_Travaux3',
                    'parcelles_Travaux_Date4','parcelles_Travaux_Travaux4',
                    'parcelles_Travaux_Date5','parcelles_Travaux_Travaux5',
                    'parcelles_Travaux_Date6','parcelles_Travaux_Travaux6'
                ]
                items = [e[field] for field in fields if e[field]]
                str2 = '\n'.join(f'{a} : {b}' for a, b in list(batched(items, 2)))
                if not str2:
                    return 'Aucun travaux effectués ici...'
                return str2
            self.dlg.travauxListe.setText(build_travaux_dates(e))

Merci de votre aide

Marcopololo

Hors ligne

 

#2 Thu 17 April 2025 14:32

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1194

Re: Python: erreur sur champ absent

Bonjour,

si j'ai bien compris votre problème :

Code:

 items = [e[field] if field in e else 'pas de données' for field in fields]

ou alors

Code:

 items = [e.get(field, 'pas de données') for field in fields]

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo