【发布时间】:2021-06-21 09:21:56
【问题描述】:
我正在尝试编写一个包含逻辑查询的 python 命令。我有一系列表和层,当两个共享变量具有相同的值时,我想对它们运行命令。我创建了这些表和层的列表:
pattern = '*Assess*.dbf'
files = []
tables = []
layernames = []
## create the loop element
for dirpath, dirnames, filenames in arcpy.da.Walk(inputFolder):
# append shapefile path to list
for filename in fnmatch.filter(filenames, pattern):
files.append(os.path.join(dirpath, filename))
tables = arcpy.ListTables()
for file in files:
names.append("\"TOWN_ID\" = " + str(int(os.path.basename(file).rstrip(os.path.splitext(file)[1])[1:4])))
layernames.append(str(int(os.path.basename(file).rstrip(os.path.splitext(file)[1])[1:4])))
代码如下:
for layername, table in zip(layernames, tables):
#print layername
#print table
#CF_QueryTool = "C:\\ArcGIS_Temp\\parcel_mosaic\\land_parcels_mosaic.gdb\\cf_QueryTool"
tablelist = [table, "TaxParcels_Layer.{}".format(layername)]
wherecluase = "TaxParcels_Layer.{}.LOC_ID = table.LOC_ID".format(layername)
print tablelist
print wherecluase
arcpy.MakeQueryTable_management(tablelist, "QueryTable.{}".format(layername), "ADD_VIRTUAL_KEY_FIELD", "", "" ,wherecluase)
print "QueryTable.{} created".format(layername)
问题是,显然我的 wherecluase 有问题,这让我想知道我是否真的可以使用 table.locid 之类的东西来使用表列表。如果我在这里犯了错误,请告诉我。非常感谢!
【问题讨论】:
标签: python where-clause arcgis arcpy