Я пытаюсь запустить набор инструментов скрипта в ARCGIS Pro, который выполняет расчет CalculateField_management и выдает ошибку:
Файл "", строка 1, в файле "", строка 5, в update_status TypeError: 'int 'объект не может быть подписан
Сценарий должен принять ввод точечного объекта для работы, а затем два списка с информацией (имя (текст), min_num (int), max_num (int)).чем в кодовом блоке цикл for должен обновить выбранный столбец на основе данных списка, но сделать это не удалось. Сценарий отлично работает, когда я использую в режиме ожидания со списками, вставленными вручную .
Я новичок в этой теме, только начинаю изучать python и arcpy
import arcpy
import os
arcpy.env.overwriteOutput = True
Feature_select = arcpy.GetParameterAsText(0)
surv_list = arcpy.GetParameterAsText(1)
record_list = arcpy.GetParameterAsText(2)
# Examplse of the text input that relate to data in the table, (Name(str), Min_num(int), Max_num(int)):
# surv_list = ('FT18-17',235,300),('FT18-17',410,432) #List input example
# record_list = ('FT18-17',310,340),('FT18-15',131,145) #List input example
Feature = os.path.basename(Feature_select)
codeblock = ("""def update_status(line,point):
surv_list = {1}
record_list = {2}
for x in surv_list:
if line == x[0] and point >= x[1] and point <= x[2]:
return 1
for y in record_list:
if line == y[0] and point >= y[1] and point <= y[2]:
return 2""")
arcpy.CalculateField_management(Feature,"Status","update_status(!LineNumber!,!Station!)","PYTHON3",codeblock)