<\/HEAD>
Mám skript, který vezme excel, importuje ho jako tabulku, poté spustí dotaz pro získání potřebných řádků a exportuje je do nové tabulky. Poté prochází tabulkou pomocí search cursoru a vytváří seznam hodnot. Následně prochází seznam hodnot a používá tyto hodnoty jako vstup pro Where Clause u select by attribute k výběru správného polygonu. Tento polygon povolení je pak použit k výběru sloupů z jiné feature class a poté jsou tyto sloupy exportovány jako nová feature class pojmenovaná podle hodnoty použité k výběru polygonu povolení. Problém je s předáním hodnoty ze seznamu hodnot do where clause nástroje SelectLayerByAttribute_management. <\/P>
<\/P>
import <\/SPAN>arcpy
import <\/SPAN>datetime
# Proměnné
<\/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>("Vytvářím tabulku: " <\/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")
# Vytvoření seznamu názvů povolení pro předání do select by attributes pro mřížky povolení
AllValues = []
with arcpy.da.SearchCursor(work_table, ("Permit_Name", "Ticket_Number")) as search:
for row in search:
if row[0] not in AllValues:
AllValues.append(row[0])
# Procházení seznamu a výběr polygonu, poté použití tohoto polygonu k výběru sloupů uvnitř a export těchto sloupů do jednotlivých feature classes
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>\\</ span >< span styl e= " color : 006 a 87 59 ; " > " </ span > + Value)
except </ span >< span styl e= " color : 8888 c 6 ; " >Exception </ span >< span styl e= " color : cc 78 32 ; " >as </ span >e:
< span styl e= " color : 8888 c 6 ; " >print</ span >(< span styl e= " color : 006 a 87 59 ; " >"CHYBA : " </ span >+ e.args[< span styl e= " color : 6897 bb ; " >0</ span >])
Chyba kterou dostávám je:<\/P>
CHYBA : ERROR 000358 : Neplatný výraz
Nepodařilo se provést (SelectLayerByAttribute).<\/P>
<\/P>
Děkuji za pomoc.<\/P><\/BODY><\/HTML>