2015-09-09 2 views
2

Попытка создать простой выбор по сценарию атрибута, который будет выбираться на основе ввода в инструменте в ARC Toolbox. Мои данные хранятся в базе данных файлов в наборе данных функций под названием «Контроль», класс функций называется «Памятники». Поле называется «Township».Попытка создать простой выбор по сценарию атрибута на основе ввода

Вот код

# Select Features base on Township 

import arcpy 

mxd = arcpy.mapping.MapDocument("CURRENT") 

Monuments = arcpy.mapping.ListLayers(mxd, "Monuments") [0] 

TWN = arcpy.GetParameterAsText(0) 

arcpy.SelectLayerByAttribute_management(Monuments, "NEW_SELECTION", "Monuments.Township" = TWN) 

Но получаю сообщение об ошибке. «Ключевое слово не может быть выражением».

Любые мысли ... Спасибо заранее.

+2

Что вы ожидали '«Monuments.Township»= TWN' сделать в качестве параметра? – jonrsharpe

+0

Это уравнение, чтобы выбрать все записи в слое памятника, который является поселком = входным параметром. –

+0

Но это не может быть аргумент ключевого слова – jonrsharpe

ответ

2

SHORT ОТВЕТ

arcpy.SelectLayerByAttribute_management(Monuments, "NEW_SELECTION", "Monuments.Township = '" + TWN + "'") 

ОБЪЯСНЕНИЕ

, как вы попробовали это в основном так же, как это:

whereClause = "Monuments.Township" = TWN 
arcpy.SelectLayerByAttribute_management(Monuments, "NEW_SELECTION", whereClause) 

Если вы понимаете, Python, вы узнаете что whereClause = "Monuments.Township" = TWN недопустим синтаксис. Вы не можете присвоить значение "Monuments.Township", что и делает ваш код. Точно так же вы не можете передать "Monuments.Township" = TWN в качестве параметра. Вместо этого вам нужно построить строку, например: "Monuments.Township = '" + TWN + "'". Это справедливо синтаксис, как в следующем:

whereClause = "Monuments.Township = '" + TWN + "'" 
arcpy.SelectLayerByAttribute_management(Monuments, "NEW_SELECTION", whereClause) 

Мой короткий ответ выше делает то же самое в одной строке кода вместо двух.

(Мои извинения людям Python, которые, вероятно, могут дать более точное объяснение.)

Смежные вопросы