I looked at the standardize address tool to see if it would do what I need and it works for most of my address data, but there are a number that don't fit the perfect model.( See Error Trapping )
At any rate, holding the rank of Hack Specialist .1 in the Python Legion, I'm running a series of scripts to parse out address components from a single string address in the form of
1234 S Main ST or 1234 E Olive Branch Dr or 1234 S 300 E.
The house number, pre-dir and suf-type/suf-dir aren't too bad, but teasing the street itself out is a little more challenging as it may be multiple words. What I've come up with is a series of splits and joins that get the job done, but there has got to be a better way. Any pointers are appreciated.
Here is what I do:
def myStreetName(inString): a = inString.split(' ') b = a.pop() #takes off suf c = ' '.join(a) # put it back together d = c.split(' ') #split it back out again e = d.pop(0) #takes off housenum f = ' '.join(d) #put it back together again g = f.split(' ') # split again h = g.pop(0) # get rid of pre-dir street = ' '.join(g) #leaves just the street return street #home free