操作方法

操作方法:在 ArcGIS Pro 中使用 Python 将新行从现有 CSV 文件追加到要素属性表中

Last Published: May 8, 2025

摘要

在 ArcGIS Pro 中,可以使用 ArcGIS API for Python 自动化更新要素类属性表字段数据记录的流程,并从 CSV 文件中导入数据。 按照本文中描述的工作流程,使用独立 Python 文件 (.py) 从 CSV 文件更新属性表,并添加新行。 Python 文件也在 Jupyter Notebook 中运行。

过程

  1. 导入所需的模块。
import arcpy
  1. 指定要素类文件位置、csv 文件位置和涉及字段的参数。
fc = r"<featureClassPath>"
csv = r"<csvPath>"
copy_fields = ["<fieldName1>", "<fieldName2>", "<fieldName3>"]
  1. 创建字典,存储字段值。
csv_dict = {row[0]: row for row in arcpy.da.SearchCursor(csv, copy_fields)}
  1. 使用 UpdateCursor() 函数遍历要素。
with arcpy.da.UpdateCursor(fc, copy_fields) as cursor:
    for row in cursor:
        key = row[0]
        try:
            new_row = csv_dict[key]
        except KeyError:
            print(f"Entry not found in csv: {copy_fields[0]} = {key}")
            continue
        cursor.updateRow(new_row)
        del csv_dict[key]
  1. 应用 InsertCursor() 函数,在要素类中插入新字段。
with arcpy.da.InsertCursor(fc, copy_fields) as cursor:
    for new_row in csv_dict.values():
        cursor.insertRow(new_row)
  1. 应用 print() 函数,在更新属性表时显示消息。
print("<message>")

以下代码块演示了完整工作脚本。

fc = r"C:\Users\testUser\Documents\Article work\Article 29321\MyProject 29321\MyProject 29321.gdb\Schools_all"
csv = r"C:\Users\testUser\Documents\Article work\Article 29321\schoolLvl.csv"
copy_fields = ["NAME", "LEVEL_NO", "LEVEL"]

import arcpy
csv_dict = {row[0]: row for row in arcpy.da.SearchCursor(csv, copy_fields)}

with arcpy.da.UpdateCursor(fc, copy_fields) as cursor:
    for row in cursor:
        key = row[0]
        try:
            new_row = csv_dict[key]
        except KeyError:
            print(f"Entry not found in csv: {copy_fields[0]} = {key}")
            continue
        cursor.updateRow(new_row)
        del csv_dict[key]

with arcpy.da.InsertCursor(fc, copy_fields) as cursor:
    for new_row in csv_dict.values():
        cursor.insertRow(new_row)

print("Complete")

文章 ID: 000029321

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项