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 | SmallInteger、Integer、Single、Double、String、Date、OID、Geometry、 BLOB |
scale | フィールドのスケール |
precision | フィールドの精度 |
プロパティ | 説明 |
---|---|
name | インデックスの名前 |
isAscending | インデックスを昇順で並べ替える場合は True |
isUnique | インデックスが一意の場合は True |
fields | Field オブジェクトのリスト。これは、Describe の fields プロパティを使用する場合と同じです。 |
ヒント:
ListFields と ListIndexes を使用して、名前とタイプに基づいて結果を絞り込むことができます。