<\/HEAD>
Eu tenho um script que pega um excel, importa como uma tabela e então executa uma consulta para obter as linhas necessárias e exporta elas para uma nova tabela. Depois disso, um cursor de busca percorre a tabela e cria uma lista de valores. Em seguida, ele itera pela lista de valores e usa os valores como entrada para a Cláusula Where do select by attribute para selecionar o polígono correto. Esse polígono de permissão é então usado para selecionar postes de outra classe de feição e depois exportar esses postes como uma nova classe de feição nomeada pelo valor usado para selecionar o polígono de permissão. O problema é passar o valor da lista de valores para a cláusula where da ferramenta SelectLayerByAttribute_management. <\/P>
<\/P>
import <\/SPAN>arcpy
import <\/SPAN>datetime
# Variáveis
<\/SPAN>time = datetime.date.today()
raw = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\MRE_Table.xlsx"
<\/SPAN>mre_table = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\MRE_Tb"
<\/SPAN>permits = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\Permits"
<\/SPAN>Poles = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\Poles"
<\/SPAN>work_table = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\MRE_workTB"
<\/SPAN>geoDB = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb"
<\/SPAN>
<\/SPAN>arcpy.env.workspace = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb"
<\/SPAN>arcpy.env.overwriteOutput = True
<\/SPAN>
<\/SPAN>
<\/SPAN>try<\/SPAN>:
print<\/SPAN>("Criando Tabela: " <\/SPAN>+ mre_table)
arcpy.ExcelToTable_conversion(raw, <\/SPAN>mre_table, <\/SPAN>"Sheet1"<\/SPAN>)
mre_tview = arcpy.MakeTableView_management(mre_table, <\/SPAN>"MRE_TableView"<\/SPAN>)
arcpy.SelectLayerByAttribute_management(mre_tview, <\/SPAN>"NEW_SELECTION"<\/SPAN>, <\/SPAN>"Ticket_Number IS NOT NULL"<\/SPAN>, None<\/SPAN>)
arcpy.SelectLayerByAttribute_management(mre_tview, <\/SPAN>"REMOVE_FROM_SELECTION"<\/SPAN>, <\/SPAN>"Permit_Name = ' '"<\/SPAN>, None<\/SPAN>)
arcpy.CopyRows_management(mre_tview, <\/SPAN>work_table)
permitview = arcpy.MakeFeatureLayer_management(permits, <\/SPAN>"Permits_Layer"<\/SPAN>)
poleview = arcpy.MakeFeatureLayer_management(Poles, <\/SPAN>"Poles_Layer"<\/SPAN>)
# Criando uma lista de nomes de permissão para passar no select by attributes para as grades de permissão
<\/SPAN> <\/SPAN>AllValues = []
with <\/SPAN>arcpy.da.SearchCursor(work_table, <\/span>("Permit_Name", "Ticket_Number")) as search:
for row in search:
if row[0] not in AllValues:
AllValues.append(row[0])
# iterando pela lista e selecionando um polígono e então usando esse polígono para selecionar postes localizados dentro e exportando esses postes em Classes de Feição individuais
for Value in AllValues:
print(Value)
itsa = "permit_name = {}".format(Value)
print(itsa)
expression = str(itsa)
permitSelect = arcpy.SelectLayerByAttribute_management(permitview, "NEW_SELECTION", expression, None)
permitPoly = arcpy.MakeFeatureLayer_management(permitSelect, "permitPoly_" + Value)
poleSelect = arcpy.SelectLayerByLocation_management(poleview, "INTERSECT", permitPoly, "30 FEET", "NEW_SELECTION", "")
arcpy.CopyFeatures_management(poleSelect, geoDB + <"</span>\\ + Value)
except Exception as E:
print( "ERRO: " + E.args[0])
O erro que estou recebendo é:<\/P>
ERRO: ERRO 000358: Expressão inválida
Falha ao executar (SelectLayerByAttribute).<\/P>
<\/P>
Obrigado pela ajuda.<\/P><\/BODY><\/HTML>