TransWikia.com

Selecting features from partial string in where clause with variable of Select Layer By Attribute in ArcPy

Geographic Information Systems Asked by hồng nguyễn văn on October 1, 2021

I am new to coding using ArcPy.

My code is:

roadname = "Ly Thuong Kiet"
arcpy.SelectLayerByAttribute_management("inLayer_lyr","NEW_SELECTION",""" "DIA_CHI" LIKE '{0}' """.format(roadname))

This code can run easily. However, I want to choose all the elements belonging to "DIA_CHI" field that have a name in the roadname.
Example: "Hem 32 Ly Thuong Kiet" will be contained in ("Ly Thuong Kiet").

When I wrote this code:

arcpy.SelectLayerByAttribute_management("inLayer_lyr","NEW_SELECTION",""" "DIA_CHI" LIKE "%Ly Thuong Kiet")

It can run. But when I use variable , I couldn’t use percentage sign (%) in format.

2 Answers

not the most "pythonic" solution, but you could simply avoid the .format by using string concatenation

arcpy.SelectLayerByAttribute_management("inLayer_lyr","NEW_SELECTION",""" "DIA_CHI" LIKE '%""" + roadname + "'")

Correct answer by radouxju on October 1, 2021

I would try doing it like this:

arcpy.SelectLayerByAttribute_management("inLayer_lyr","NEW_SELECTION","DIA_CHI LIKE '%{0}'".format(roadname))

Delimiters around field names have not been needed for quite a few versions and dispensing with them simplifies the syntax.

Answered by PolyGeo on October 1, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP