Message posté par : François063
----------------------------------------
Bonjour,
débutant sous QGIS et en python, je bute sur des règles de base notamment lors de la
recherche, le parcours d'un dictionnaire
j'utilise actuellement la version 3.5 de QGIS au travers de "Script Runner"
dans sa version 3.0.5
j'ai constitué un dictionnaire "List" contenant comme clefs des Tuples
(Couche,Champ) et comme contenu, des infos sur le champ concerné sous forme de liste ex:
{('BDI_PLU', 'CODE_INSEE'): 'Champ,1,CODE_INSEE,String,5\n'}
Les Couches sont multiples tout comme les Champs
Les traitement précédents m'ont permis d'isoler cette Table 'BDI_PLU' pour
laquelle j’attends un champ 'CODE_INSEE' qui est absent de la Table analysée
Je veux rechercher dans dans mon Dictionnaire "List" s'il existe (1 ou
plusieurs) occurrences de la clef 'BDI_PLU' sans me préoccuper de la clef
'Champ' (dont je ne connais en théorie pas encore le détail) et si il en existe
une, alors j'irai les parcourir une à une et les tracerai dans un fichier texte
Le code tel que je l'ai écrit ne lève plus d’exception mais n'identifie toujours
pas la clef 'BDI_PLU' qui est pourtant présente dans le dictionnaire
(le for sera à corriger, une fois que le if sera vrai, mais je n'en suis pas encore
là...)
-----------------
Code :
-----------------
if ca.name() in List:
orapport.write("il reste au moins un couple " + ca.name() +
"/champ.name() dans List")
print("il reste au moins un couple " , ca.name() , "/champ.name()
dans List")
for clef in List[(ca.name(),clef)]:
print (List[(ca.name(), clef)])
orapport.write(List[(ca.name(), clef)])
else:
print("il ne reste aucun couple non visité pour " , ca.name() , "
dans List")
-----------------
Code :
-----------------
Je ne comprends pas pourquoi ca.name() qui contient 'BDI_PLU' n'est pas
détecté dans "List" et me renvoie sur le else: "il ne reste aucun couple
non visité pour " , ca.name() , " dans List"
Je pressent qu'un examen de tous les Tuples est nécessaire avant de tenter le
'in' sur List. Mais si tel était le cas, le in n'aurait plus d'intérêt
selon moi
En vous remerciant pas avance pour vos éclairages
Cordialement
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=322351#p322351
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net