I am trying to write a field calculation script that changes road names with abbreviations to the full name. Example: Day Dr. => DAY DRIVE or Phillips Rd. => PHILLIPS ROAD. I wrote and tested the function in Jupyter notebook and everything works fine. I got the script to work on my points feature class but the same script will not work on the same field in my line feature class. Any suggestions?
def street_name_fix(StreetName):
StreetName = StreetName.rstrip('.')
if StreetName is not None:
if StreetName != '':
if StreetName.split()[-1].upper() == 'RD':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'ROAD')
elif StreetName.split()[-1].upper() == 'CIR':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'CIRCLE').upper()
elif StreetName.split()[-1].upper() == 'DR':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'DRIVE').upper()
elif StreetName.split()[-1].upper() == 'LN':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'LANE').upper()
elif StreetName.split()[-1].upper() == 'CT':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'COURT').upper()
elif StreetName.split()[-1].upper() == 'PL':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'PLACE').upper()
elif StreetName.split()[-1].upper() == 'ST':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'STREET').upper()
elif StreetName.split()[-1].upper() == 'BLVD':
return '{} {}'.format(' '.join(StreetName.split()[:-1]), 'BOULEVARD').upper()
else:
return StreetName.upper()
else:
return ''
else:
return StreetName