Понять, почему я получаю объект "TypeError: 'int' не может быть подписан" внутри цикла for в кодовом блоке - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь запустить набор инструментов скрипта в 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...