我已经为此搜索了一个解决方案,但还没有找到完整的解决方案。我有几十个表,每个表都包含数千个行功能。无论何时拆分线要素,都会创建另一条记录,但新线(记录)仍然具有旧的ASSETID。这意味着重复的ASSETID诞生了。是维护python脚本,可以找到所有重复的ASSETID并使它们为空?这将只留下原始的ASSETID,我有一个后续运行的脚本,它将用一个新的随机生成的ASSETID填充ASSETID字段。我已经能够创建所有重复值的列表,一个值出现次数的列表,表格上的新列,如果重复值,则为“Y”,但是仍然能够删除重复字段值,同时保留行中的所有其他内容。
答案 0 :(得分:0)
由于您有重复ASSETID
的列表,因此您可以使用ArcPy UpdateCursor仅修改该属性。
with arcpy.da.UpdateCursor(feature_class, ["ASSETID"]) as cursor:
for row in cursor:
if row[0] in unique_id_list: # if the ASSETID is in the list
row[0] = None
cursor.updateRow(row)
这将修改具有ASSETID
值的所有行,但不保留“原始”完整。您需要一份额外的原始列表(通过另一个唯一标识符,例如OBJECTID
)并排除这些标识符,例如:
if row[0] in unique_id_list and row[1] not in original_id_list: