フィールドおよびインデックスの使用

Describe を実行すると、フィーチャクラスおよびテーブルには Field オブジェクトのリストを返すfields プロパティと、Index オブジェクトのリストを返すindexes プロパティが含まれていることがわかります。それぞれのフィールド オブジェクトまたはインデックス オブジェクトに含まれているさまざまなプロパティを使用して、オブジェクトの内容を調べることができます。また、ListFields 関数と ListIndexes 関数を使用して同じリストを作成することもできます。

ListFields(dataset, wild_card, field_type)

入力値に含まれるフィールドのリストを返します。

ListIndexes(dataset, wild_card)

入力値に含まれる属性インデックスのリストを返します。

リスト関数

次の例では、フィールド リストを作成し、その内容を反復処理して特定のフィールドを見つける方法を示します。

import arcpy
fc = 'D:/St_Johns/data.gdb/roads'
# Get a list of field objects
fields = arcpy.ListFields(fc, 'Flag')
for field in fields:
    # Check the field name, perform a calculation when finding the field 'Flag'
    if field.name == 'Flag':
        # Set the value for the field and exit loop
        arcpy.CalculateField_management(fc, 'Flag', '1')
        break

フィールド オブジェクトおよびインデックス オブジェクトのプロパティを次に示します。

プロパティ説明

name

フィールドの名前

aliasName

フィールドのエイリアス名

domain

関連したドメインの名前

editable

フィールドが編集可能な場合は True

isNullable

フィールドが NULL 可能な場合は True

required

フィールドが必須の場合は True

length

フィールドの長さ

type

SmallIntegerIntegerSingleDoubleStringDateOIDGeometryBLOB

scale

フィールドのスケール

precision

フィールドの精度

フィールド プロパティ

プロパティ説明

name

インデックスの名前

isAscending

インデックスを昇順で並べ替える場合は True

isUnique

インデックスが一意の場合は True

fields

Field オブジェクトのリスト。これは、Describefields プロパティを使用する場合と同じです。

インデックス プロパティ

ヒント:

ListFieldsListIndexes を使用して、名前とタイプに基づいて結果を絞り込むことができます。