現在、2つのフィールドに入力しようとしています。これらは両方とも、既存のフィーチャクラスからのデータを入力するテーブル内にすでに作成されています。アイデアは、特定のプロジェクト番号に一致する目的のフィーチャクラスからすべてのデータをコピーすることです。プロジェクト番号に一致する行は、一致するフィールドを持つ空白のテンプレートにコピーされます。これまでのところ、オブジェクトIDフィールドとフィーチャクラスの名前のデータをテーブル内の2つのフィールドにプッシュする必要があることを除いて、すべて問題ありません。
**def featureClassName(table_path):
arcpy.AddMessage("Calculating Feature Class Name...")
print "Calculating Feature Class Name..."
featureClass = "FeatureClass"
SDE_ID = "SDE_ID"
fc_desc = arcpy.Describe(table_path)
lists = arcpy.ListFields(table_path)
print lists
with arcpy.da.SearchCursor(table_path, featureClass = "\"NAME\"" + " Is NULL") as cursor:
for row in cursor:
print row
if row.FEATURECLASS = str.replace(row.FEATURECLASS, "*", fc):
cursor.updateRow(row)
print row
del cursor, row
else:
pass**
上記のコードは私の試みであり、多くの場合、フィールドにFeatureクラスの名前を入力します。私はOIDで同じことをしようとしました。
**for fc in fcs:
print fc
if fc:
print "Making Layer..."
lyr = arcpy.MakeFeatureLayer_management (fc, r"in_memory\temp", whereClause)
fcCount = int(arcpy.GetCount_management(lyr).getOutput(0))
print fcCount
if fcCount > 0:
tbl = arcpy.CopyRows_management(lyr, r"in_memory\temp2")
arcpy.AddMessage("Checking for Feature Class Name...")
arcpy.AddMessage("Appending...")
print "Appending..."
arcpy.Append_management(tbl, table_path, "NO_TEST")
print "Checking for Feature Class Name..."
featureClassName(table_path)
del fc, tbl, lyr, fcCount
arcpy.Delete_management(r"in_memory\temp")
arcpy.Delete_management(r"in_memory\temp2")
else:
arcpy.AddMessage("Pass... " + fc)
print ("Pass... " + fc)
del fc, lyr, fcCount
arcpy.Delete_management(r"in_memory\temp")
pass**
このコードは、データセット内のフィーチャクラスのメインループであり、データをテーブルにコピーするために使用する新しいレイヤー/テーブルを作成します。フィーチャクラス名とOIDのデータにはプッシュするデータがないため、行き詰まります。
みんなありがとう