Краткая информация
Принимает строку (имя поля) и путь рабочей области и возвращает корректное имя поля, созданное с учетом ограничений на задание имен в выходной базе геоданных. Некорректные символы во входной строке заменяются на символ подчеркивания (_). Ограничения на имена полей зависят от используемой базы данных (SQL или Oracle).
Синтаксис
ValidateFieldName (name, {workspace})
Параметр | Описание | Тип данных |
name | The field name to be validated. If the optional workspace is not specified, the field name is validated against the current workspace. | String |
workspace | An optional specified workspace to validate the field name against. The workspace can be a file system or a file, or enterprise geodatabase. If the workspace is not specified, the field name is validated using the current workspace environment. If the workspace environment has not been set, the field name is validated based on a folder workspace. | String |
Тип данных | Описание |
String | Возвращает строку, содержащую допустимое имя поля, основанное либо на текущей, либо на заданной рабочей области. |
Пример кода
Возвращает допустимое имя поля на основе рабочей области.
import arcpy
import os
class ShapeError(Exception):
pass
try:
# Get the input feature class and make sure it contains polygons.
in_fc = arcpy.GetParameterAsText(0)
if arcpy.Describe(input).shapeType != "Polygon":
# Raise a custom exception
raise ShapeError("Input does not contain polygons")
# Get the new field name and validate it.
field_name = arcpy.GetParameterAsText(1)
field_name = arcpy.ValidateFieldName(field_name, os.path.dirname(in_fc))
# Add the new field and calculate the value.
arcpy.management.AddField(in_fc, field_name, "DOUBLE")
arcpy.management.CalculateField(in_fc,
field_name,
"!shape.area! / !shape.length!",
"PYTHON_9.3")
except ShapeError as err:
print(err[0])
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))