如何在ArcGIS表的某些特定列中写入值?

时间:2019-05-21 16:39:46

标签: python scripting arcgis

我正在编写一个python脚本来添加字段并将数据写入ArcGIS表。我可以成功编辑和删除表中的列或字段。但是我一直坚持将数据写入字段。我得到了一个代码,通过该代码我们可以获取有关字段的类型和其他信息。但是我无法在该特定领域写点东西。

这是我从他们的论坛中获得的脚本-

import arcpy

feature_class = "c:/data/counties.shp"

# Create a list of fields using the ListFields function
fields = arcpy.ListFields(feature_class)

# Iterate through the list of fields
for field in fields:
    # Print field properties
    print("Field:       {0}".format(field.name))
    print("Alias:       {0}".format(field.aliasName))
    print("Type:        {0}".format(field.type))
    print("Is Editable: {0}".format(field.editable))
    print("Required:    {0}".format(field.required))
    print("Scale:       {0}".format(field.scale))
    print("Precision:   {0}".format(field.precision))  

已更新 下图是我的桌子 enter image description here

我的主键是 COPROPCD ,我想根据其他具有通用主键的数据集来更改其他字段。

1 个答案:

答案 0 :(得分:1)

要更新记录,您需要使用UpdateCursor方法。假设您的datasource是专一的,

import arcpy
feature_class = "c:/data/counties.shp"

with arcpy.da.UpdateCursor(feature_class, ["COPROPCD","field2"]) as cursor:
    for row in cursor:
        #Check if "COPROPCD" exist as a key in the dict     
        if row[0] in dataset.keys():
            #logic for updating the dable
            #This will update the field2 column to the value of the key
            row[1] = dataset["value"]
            cursor.updateRow(row)