Suite

La méthode pop () renvoie une erreur avec la liste des classes d'entités dans la boîte à outils python d'ArcGIS

La méthode pop () renvoie une erreur avec la liste des classes d'entités dans la boîte à outils python d'ArcGIS


J'essaie de faire quelque chose de très simple, mais je m'arrache les cheveux avec celui-ci.

Dans une boîte à outils python ArcGIS, pour l'un de mes outils, je demande à l'utilisateur une liste de couches d'entités, en utilisant le code suivant dans le fichier .pyt :

def getParameterInfo(self): """Définir les définitions de paramètres""" param0 = arcpy.Parameter( displayName="Input Line Networks", name="InputFCList", datatype="GPFeatureLayer", parameterType="Required", direction=" Input", multiValue=True) param0.filter.list = ["Polyline"]

Le paramètre clé ici est multiValue=True. Ensuite, dans ma fonction (où InputFCList est envoyé), j'utilise ce code pour faire apparaître le premier élément de la liste des classes d'entités :

def main(fcList, fcBndPoly, boolSeg, fcOutCombine): fcToLine = fcList.pop # reste du code…

Ce code fonctionne correctement pendant les tests, lorsque j'ai codé en dur la liste des classes d'entités. Cependant, lors de l'exécution de l'outil dans ArcMap, j'obtiens l'erreur suivante :

AttributeError : l'objet 'unicode' n'a pas d'attribut 'pop'

Selon la documentation ESRI, définir le paramètre multiValue sur True devrait permettre la création d'une liste de classes d'entités en entrée, mais il se passe évidemment autre chose s'il pense que la liste est en fait un objet Unicode. Des idées?


Vous n'avez pas montré comment vous avez reçu la valeur du paramètre, mais je suppose que vous utilisez probablementparameters[n].valueAsText. Utiliserparamètres[n].valeursau lieu de recevoir la valeur sous forme de liste.


Voir la vidéo: Exercice Access sur limportation sélective de données