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é ?

#1 Sat 12 April 2025 18:17

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

QGIS: Join sur liste imbriquee

Bonjour,

J'ai créé un nouveau post pour une demande plus précise.
comment utiliser join sur une liste imbriquée ?

pour une liste simple j'ai ce code qui fonctionne :

Code:

            def build_liste_arbres(e):
                fields = [
                    'liste_arbres_Plant1',
                    'liste_arbres_Plant2',
                    'liste_arbres_Plant3',
                    'liste_arbres_Plant4'
                ]
                to_str = "\n".join([e[field] for field in fields if e[field]])
                if not to_str:
                    return 'Aucune essence définie ici...'
                return to_str
            self.dlg.plantation.setText(build_liste_arbres(e))

Mais pour une liste imbriquée j'ai une erreur :

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'],
                ]            
                to_str = "\n".join([e[field] for field in fields if e[field]])
                if not to_str:
                    return ''
                return to_str
          self.dlg.tavauxListe.setText(build_travaux_dates(e))

Voici le code erreur :
to_str = "\n".join([e[field] for field in fields if e[field]])
                                                        ~^^^^^^^
TypeError: QgsFeature.__getitem__(): arguments did not match any overloaded call:
  overload 1: argument 1 has unexpected type 'list'
  overload 2: argument 1 has unexpected type 'list'

Bien sûr avec une seule ligne cela fonctionne

Dernière modification par Marcopololo (Sat 12 April 2025 23:57)

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo