Hello
I am really green in this, but I am having trouble using where_clause to select two types two different types of attributes within the same column using the Select(analysis) tool with arcpy.
The way I do it regularly using Select by Attributes windows is the following
DrainClass = 'Somewhat excessively drained' OR DrainClass = 'Well drained'
I have tried using double quotations on the outside, but I keep getting an ExecuteError
ExecuteError: ERROR 000358: Invalid expression DrainClass = 'Somewhat excessively drained' OR DrainClass = 'Well drained'
Does anyone know how to set the correct expression in arcpy?
Thank you
It is helpful if you can post the exact code you are using to call the function/tool. Post a couple examples if you have tried them and they all fail.
DrainClass Like %drained%' if there are only 2
Title = 'Actor' OR Title = 'Advisor' good... no typing involved, select the field, the OR and the case
(Title = 'Actor') OR (Title = 'Advisor') better, no typing, paying attention that conditionals are surround in ( )'s
Thank you,
I ran the code using the Select (analysis) tool, then copied the python code snippet from the results window and this is what it said
where_clause1=""""DrainClass" = 'Well drained' OR "DrainClass" = 'Somewhat excessively drained'"""
greatSoiloutput = "greatSoils.shp"where_clause1=""""DrainClass" = 'Well drained' OR "DrainClass" = 'Somewhat excessively drained'"""arcpy.Select_analysis(bigSoils, greatSoiloutput, where_clause1)
Sorry I am very new at this.
greatSoiloutput = "greatSoils.shp"
where_clause1 = """
"DrainClass" = 'Well drained' OR "DrainClass" = 'Somewhat excessively drained'
"""
arcpy.Select_analysis(bigSoils, greatSoiloutput, where_clause1)
When formatted so it is easier to read.
So line 1... is the input shapefile, however, the path to the shapefile is not specified, so there has to be a reference to an environment variable (ie ... arcpy.env.workspace = r"c:\folder\subfolder")
line 2 and 4 ... contain triple double quotes to encase/enclose the code block shown (separated on its own line to facilitate reading). The actual code block uses the format for shapefiles, etc, Field names are enclosed in double quotes and text conditions on the right of the condition check are enclosed in single quotes.
For simplicity reasons it would be better to use the IN operator:
"DrainClass" IN ('Well drained', 'Somewhat excessively drained')