ArcPy: необязательный параметр курсора

Я получил необязательный параметр поля из arcpy.GetParameterAsText.

Как я могу использовать arcpy.da.SearchCursor независимо от того, задано ли поле или нет?

> infc = arcpy.GetParameterAsText(0)
> field = arcpy.GetParameterAsText(1)
> arcpy.da.SearchCursor(infc,["SHAPE@", field])

Ошибка RuntimeError: Не удается найти поле ''

Как сделать параметр field_name в курсоре необязательным?

1 ответ

Включите условное, чтобы проверить, field получает значение. Если это так, включите его в список полей курсора; если нет, укажите другое значение по умолчанию.

field = arcpy.GetParameterAsText(1)

# if variable `field` is blank
if field == "" or field is None:
    cursor_fields = ["SHAPE@"]
# otherwise
else:
    cursor_fields = ["SHAPE@", field]

arcpy.da.SearchCursor(infc, cursor_fields)
Другие вопросы по тегам