フィールドおよびインデックスの使用
Describe を実行すると、フィーチャクラスおよびテーブルにはフィールド オブジェクトの Python リストを返すフィールド プロパティと、インデックス オブジェクトの Python リストを返すインデックス プロパティが含まれていることが分かります。それぞれのフィールド オブジェクトまたはインデックス オブジェクトに含まれているさまざまなプロパティを使用して、オブジェクトの内容を調べることができます。また、ListFields 関数と ListIndexes 関数を使用して同じリストを作成することもできます。次の例では、フィールド リストを作成し、その内容を反復処理して特定のフィールドを見つける方法を示します。
import arcpy fc = "D:/St_Johns/data.gdb/roads" # Describe a feature class # desc = arcpy.Describe(fc) # Get a list of field objects from the describe object # fields = desc.fields 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 |
SmallInteger、Integer、Single、Double、String、Date、OID、Geometry、BLOB |
Scale |
フィールドのスケール |
Precision |
フィールドの精度 |
プロパティ |
説明 |
---|---|
Name |
インデックスの名前 |
IsAscending |
インデックスが昇順で並べ替えされている場合は True |
IsUnique |
インデックスが一意の場合は True |
Fields |
フィールド オブジェクトの Python リスト。これは、Describe のフィールド プロパティを使用する場合と同じ |
ListFields と ListIndexes を使用して、名前とタイプに基づいて結果を絞り込むことができます。