按属性选择不选择任何内容

时间:2018-01-01 13:34:02

标签: python arcmap

我有一个“Roads”要素类,它有Paved(0)和Unpaved(1)道路。 我想使用Python选择所有Paved道路,所以我在arcmap的Python窗口中使用了这段代码:

qry = '"Subtype" = ' + "'0'"
arcpy.SelectLayerByAttribute_management ("Roads", "NEW_SELECTION", qry )

该命令正在运行,但未在地图上选择任何内容。 我尝试通过将Roads图层作为最顶层来重新排列内容列表中图层的层次结构,但同样没有选择任何内容。

编辑:我尝试使用“选择”选项卡中的“按属性选择”命令,并手动输入查询,成功选择所有已铺设的道路。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

您的字段是文本字段还是数字字段?对于数字字段,您不需要在0周围使用单引号。

此外,无需使用2个单独的字符串来构建此查询。

最后,混合使用单引号和双引号来包装查询并不是一个好主意。使用三重双引号代替所有内容:

qry = """"Subtype" = '0'"""

qry = """"Subtype" = 0"""

如果查询中有可变部分(例如字段名称或字段值),您还可以使用Python string.format()函数:

field_name = "Subtype"
field_value = 0

qry = """"{}" = '{}'""".format(field_name, field_value)