Suite

Mise à jour de la table avec conflit de géométrie du curseur

Mise à jour de la table avec conflit de géométrie du curseur


Je crée une table à l'aide d'arcpy avec une liste de résultats (stockés dans des listes 2D) suite à une mise à jour de certaines fonctionnalités. Cela peut parfois inclure la géométrie, j'ai donc essayé de les remplacer par une chaîne de base pour éviter tout conflit - tous les champs sont TEXTE. Pourtant, j'obtiens cette erreur - Fichier "I:IPP Geomatics StandardsToolboxStagingScriptsupdate_attributes.py", ligne 93, dans resultsTable cursor.insertRow([z if z is not u[index] else 'Geom' pour z dans u], "mettre à jour") RuntimeError: la table n'a pas de géométrie

La variable 'index' est l'index connu dans la liste contenant une géométrie. C'est la partie incriminée de la fonction -

curseur = arcpy.da.InsertCursor(tablews + "
esults", nfields) pour u dans updatel : cursor.insertRow([z if z is not u[index] else 'Geom' for z in u], "update" )

Cela devrait omettre complètement la géométrie, mais reste signalé.

Je soupçonne que ma déclaration d'insertion est incorrecte. Selon la documentation ESRI, on peut insérer plusieurs entrées (c'est-à-dire une pour chaque champ) comme ceci -

curseur.insertRow((x, y, z))

Dans ce cas, "u" est une liste et j'essaie de la diviser en entrées distinctes, dans le même but. Le curseur doit interpréter le tableau comme une entrée, dans le premier champ.


Tuple de valeurs au curseur.InsertRow doit être complet. Si [email protected] dans nfields, il doit être défini d'une manière ou d'une autre. Point final. Vous pourriez envisager de créer une géométrie nulle