Hi,
I am trying to fix my attribute records in Arcmap.
Is there a way to do a bulk fixing, to find all my St and change it to Street?

Solved! Go to Solution.
Here's a simple Python field calculator example:
!fieldnamehere!.replace(' ST', ' STREET')
Longer example for addressing multiple changes. Use your fieldname instead of FacilityAddress.
def StreetSuffix(FacilityAddress):
list = FacilityAddress.split()
for item in range(len(list)):
if list[item] == 'STREET':
list[item] = list[item].replace("STREET", "ST")
if list[item] == 'STREET,':
list[item] = list[item].replace("STREET,", "ST")
if list[item] == 'STR.':
list[item] = list[item].replace("STR.", "ST")
if list[item] == 'STR,':
list[item] = list[item].replace("STR,", "ST")
if list[item] == 'ST.':
list[item] = list[item].replace("ST.", "ST")
if list[item] == 'ST,':
list[item] = list[item].replace("ST,", "ST")
if list[item] == 'WAY':
list[item] = list[item].replace("WAY", "WY")
if list[item] == 'WAY,':
list[item] = list[item].replace("WAY,", "WY")
if list[item] == 'WY.':
list[item] = list[item].replace("WY.", "WY")
if list[item] == 'WY,':
list[item] = list[item].replace("WY,", "WY")
return " ".join(list) Credit to Darren Wiens and several others knowledgeable in Python for coming up with this, which I gratefully stole borrowed. ![]()
Chris Donohue, GISP
There is Find and Replace in Table options.

Yes, this can be done in Python. The Python code can be placed in the field calculator, or a pure Python run can be done.
Chris Donohue, GISP
Or select thuroghfare trailingtype = 'ST' and then calc thuroghfare trainingtype = "STREET"
Here's a simple Python field calculator example:
!fieldnamehere!.replace(' ST', ' STREET')
Longer example for addressing multiple changes. Use your fieldname instead of FacilityAddress.
def StreetSuffix(FacilityAddress):
list = FacilityAddress.split()
for item in range(len(list)):
if list[item] == 'STREET':
list[item] = list[item].replace("STREET", "ST")
if list[item] == 'STREET,':
list[item] = list[item].replace("STREET,", "ST")
if list[item] == 'STR.':
list[item] = list[item].replace("STR.", "ST")
if list[item] == 'STR,':
list[item] = list[item].replace("STR,", "ST")
if list[item] == 'ST.':
list[item] = list[item].replace("ST.", "ST")
if list[item] == 'ST,':
list[item] = list[item].replace("ST,", "ST")
if list[item] == 'WAY':
list[item] = list[item].replace("WAY", "WY")
if list[item] == 'WAY,':
list[item] = list[item].replace("WAY,", "WY")
if list[item] == 'WY.':
list[item] = list[item].replace("WY.", "WY")
if list[item] == 'WY,':
list[item] = list[item].replace("WY,", "WY")
return " ".join(list) Credit to Darren Wiens and several others knowledgeable in Python for coming up with this, which I gratefully stole borrowed. ![]()
Chris Donohue, GISP
Got it fixed. Saved me tons of hours. ![]()
Now that I see this again, a more compact alternative may be (only lightly tested):
def StreetSuffix(FacilityAddress): replace_dict = { 'ST':['STREET','STREET,','STR.','STR,','ST.','ST,'], 'WY':['WAY','WAY,','WY.','WY,'] } list = FacilityAddress.split() for item in range(len(list)): for key, value in replace_dict.iteritems(): if list[item] in value: list[item] = key return " ".join(list)
I just wanted to thank you for posting this field calculator expression. I needed to update addresses in a single field to change all abbreviations to fully spelled out words. I used this expression in ArcGIS Pro, created a list of changes I needed, and updated over 16000 records with little issues. It worked great!! A huge time saver, and I learned some good skills from it.
Thank you!
Jon