#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