When I use string formatting .format() inside a loop, I notice that the value is filled in with the first keyword in the list. I think the example below will clarify things what I meant.
I've tried with:
params = {
'f': 'json',
'where': "UPPER(ADDRESS) LIKE '%{}%' or UPPER(ADDRESS2) LIKE '%{}%'",
'returnGeometry': 'true',
}
for keyword in ['A','B','C','D','E']:
params['where'] = params['where'].format(keyword,keyword)
print(params['where'])
Current output:
UPPER(ADDRESS) LIKE '%A%' or UPPER(ADDRESS2) LIKE '%A%'
UPPER(ADDRESS) LIKE '%A%' or UPPER(ADDRESS2) LIKE '%A%'
UPPER(ADDRESS) LIKE '%A%' or UPPER(ADDRESS2) LIKE '%A%'
UPPER(ADDRESS) LIKE '%A%' or UPPER(ADDRESS2) LIKE '%A%'
UPPER(ADDRESS) LIKE '%A%' or UPPER(ADDRESS2) LIKE '%A%'
Expected output:
UPPER(ADDRESS) LIKE '%A%' or UPPER(ADDRESS2) LIKE '%A%'
UPPER(ADDRESS) LIKE '%B%' or UPPER(ADDRESS2) LIKE '%B%'
UPPER(ADDRESS) LIKE '%C%' or UPPER(ADDRESS2) LIKE '%C%'
UPPER(ADDRESS) LIKE '%D%' or UPPER(ADDRESS2) LIKE '%D%'
UPPER(ADDRESS) LIKE '%E%' or UPPER(ADDRESS2) LIKE '%E%'