我正在尝试通过访问表中的字段中的项目进行光标搜索。然后我将它们附加到一个名为“distList”的列表中。我想将列表传递到等式中的 SQL 查询构建器“WHERE”子句中:
"Field1" in distList
或长期来看,它看起来像这样:
"Field1" in ('ds(c1)', 'ds(b1)', 'ds(c2)', 'ds(g1)')
该列表如下所示:
['ds(c1)', 'ds(b1)', 'ds(c2)', 'ds(g1)']
我遇到的问题是,上面的 SQL 等式不喜欢“查看”python 列表。它不识别方括号。它更喜欢圆括号,所以我考虑使用元组。我面临的问题是我不知道如何在光标搜索访问表中的项目后构建一个元组。这是我的代码示例:
distList = []
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name == "Disturbance":
for row in arcpy.SearchCursor(lyr):
if "ds" in row.Field1:
distList.append(row.Field1)
lyr.definitionQuery = '"Field1"' + "in " + distList
任何人都可以建议一种将我的列表放入元组的方法,或者只是一种更好的方法将我的项目转换为具有圆括号而不是方括号的格式?
作为一种解决方法,我尝试将列表转换为字符串str(distList)
,然后替换括号。这很好用,但看起来很麻烦,我相信有更好的方法。
谢谢,迈克