Describe

Summary

Returns a dictionary with multiple properties, such as data type, fields, indexes, and many others. The dictionary's keys are dynamic, meaning that depending on what data type is described, different properties will be available for use.

Describe keys are organized into a series of property groups. Any particular dataset will acquire the properties of at least one of these groups. For instance, if describing a geodatabase feature class, you could access properties from the Geodatabase Feature Class, Feature Class, Table, and Dataset property groups. All data, regardless of the data type, will always acquire the generic Describe object properties.

Discussion

Many data types include properties from other property groups. For instance, if describing a geodatabase feature class, you could access properties from the Geodatabase Feature Class, Feature Class, Table, and Dataset property groups.

Syntax

Describe (value, {datatype})
ParameterExplanationData Type
value

The specified data element or geoprocessing object to describe.

String
datatype

The type of data. This is only necessary when naming conflicts exists, for example, if a geodatabase contains a feature dataset (FeatureDataset) and a feature class (FeatureClass) with the same name. In this case, the data type is used to clarify which dataset you want to describe.

(The default value is None)

String
Return Value
Data TypeExplanation
Dictionary

Returns a dictionary with keys detailing the data element described.

Code sample

Describe example 1

Access a specific property using the key value.

import arcpy

path = "C:\\Data\\Venice.gdb\\VeniceStructures"
desc = arcpy.da.Describe(path)
field_names = [field.name for field in desc["fields"]]

if "YEAR_BUILT" not in field_names:
    arcpy.management.AddField(path, "YEAR_BUILT", "SHORT")
Describe example 2

Display the returned Describe dictionary to look at all available properties.

import arcpy
from pprint import pprint 

path = "C:\\Data\\Venice.gdb\\VeniceStructures"
desc = arcpy.da.Describe(path)
pprint(desc)

Related topics