import arcpy # 获取用户输入参数 input_feature = arcpy.GetParameterAsText(0) # 输入要素 query_expression = arcpy.GetParameterAsText(1) # 查询表达式 output_feature = arcpy.GetParameterAsText(2) # 输出要素 # 构建查询语句 query = "{}".format(arcpy.AddFieldDelimiters(input_feature, "面积") + " >= {}".format(query_expression)) # 使用查询语句选择要素 arcpy.MakeFeatureLayer_management(input_feature, "lyr") arcpy.SelectLayerByAttribute_management("lyr", "NEW_SELECTION", query) # 将选择的要素导出到输出位置 arcpy.CopyFeatures_management("lyr", output_feature) # 清除选择 arcpy.SelectLayerByAttribute_management("lyr", "CLEAR_SELECTION")运行错误:Traceback (most recent call last): File "D:\多对一空间连接\批量删除小面积.py", line 13, in <module> File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 6688, in SelectLayerByAttribute raise e ExecuteError: ERROR 000358: 无效的表达式 执行(SelectLayerByAttribute)失败。 执行(删除小面)失败。请改正代码
时间: 2023-07-13 15:07:49 浏览: 239
使用arcpy获取简单的矢量数据信息.zip_arcPy 查询_arcpy 数据读入_arcpy 读取数据_arcpy矢量拼接
根据错误提示,查询语句中的表达式无效。请检查你输入的查询表达式是否符合要求。另外,建议在构建查询语句时,先将要素类名称用 arcpy.AddFieldDelimiters 函数括起来,以避免输入的要素类名称中包含特殊字符导致的错误。你可以尝试修改代码如下:
```
import arcpy
# 获取用户输入参数
input_feature = arcpy.GetParameterAsText(0) # 输入要素
query_expression = arcpy.GetParameterAsText(1) # 查询表达式
output_feature = arcpy.GetParameterAsText(2) # 输出要素
# 构建查询语句
query = "{} >= {}".format(arcpy.AddFieldDelimiters(input_feature, "面积"), query_expression)
# 使用查询语句选择要素
arcpy.MakeFeatureLayer_management(input_feature, "lyr")
arcpy.SelectLayerByAttribute_management("lyr", "NEW_SELECTION", query)
# 将选择的要素导出到输出位置
arcpy.CopyFeatures_management("lyr", output_feature)
# 清除选择
arcpy.SelectLayerByAttribute_management("lyr", "CLEAR_SELECTION")
```
如果还有问题,请提供更多信息,我会尽力帮助你解决问题。
阅读全文