Suite

Essayer de copier des entités d'une table in_memory vers une table d'entités


je veux juste écrire la table in_memory dans une table dans un .gdb

importer arcpy depuis arcpy import env import os import sys scriptPath = sys.path[0] thisFolder = os.path.normpath(os.path.dirname(scriptPath)) env.workspace = os.path.join(thisFolder, "AdminReport" , "Workspace") #get variables… code here… #create Table print("Creating Table… ") tempTable = arcpy.CreateTable_management("in_memory", "tempTable") arcpy.AddField_management(tempTable, "Parcel_FID", "LONG" ) arcpy.AddField_management(tempTable, "Plan_Acres", "DOUBLE") arcpy.AddField_management(tempTable, "Pres_Acres", "DOUBLE") arcpy.AddField_management(tempTable, "Conf_Region", "TEXT", field_length=25) arcpy.AddField_management (tempTable, "Conf_Date", "TEXT", field_length=25) arcpy.AddField_management(tempTable, "Center_Zone", "TEXT", field_length=25) arcpy.AddField_management(tempTable, "Center_Muni", "TEXT", field_length=25 ) #calculer les valeurs pour chaque champ row = arcpy.InsertCursor(tempTable).newRow() row.setValue("Parcel_FID", objectID) row.setValue("Plan_Acres", planAcres) row.setValue("Pre s_Acres", presAcres) row.setValue("Conf_Region", confRegion) row.setValue("Conf_Date", confDate) row.setValue("Center_Zone", centerZone) row.setValue("Center_Muni", centerMuni) del row #Table de sortie vers GDB arcpy.TableToTable_conversion(tempTable, "Workspace.gdb", "outTable")

Aucune erreur mais je reçois une table vide générée.


Il vous manque l'insertion de la ligne dans votre curseur d'insertion.

Essayez plutôt ce code pour le curseur :

curseur = arcpy.InsertCursor(tempTable) row = cursor.newRow() row.setValue("Parcel_FID", objectID) row.setValue("Plan_Acres", planAcres) row.setValue("Pres_Acres", presAcres) row.setValue(" Conf_Region", confRegion) row.setValue("Conf_Date", confDate) row.setValue("Center_Zone", centerZone) row.setValue("Center_Muni", centerMuni) cursor.insertRow(row) del curseur

Dans ton code,table externeest un objet résultat. Apparemment ça marche pourAddField_management, mais nonCopyFeatures_management. Une chaîne du chemin fonctionnera pour tout le code.

Changement:

outTable = arcpy.CreateTable_management("in_memory", "outTable")

à:

outTable = arcpy.CreateTable_management("in_memory", "outTable").getOutput (0)

Voir l'aide sur les résultats.

Ceci et ceci sont aussi de bonnes vidéos de tutoriel.

Aussi, au lieu deCopyFeatures_management, vous pouvez essayer Copy ou Table To Table.