import re
string = 'address: 123 fake street city: new york state: new york population: 500000'
pat = "[a-zA-Z0-9_]+:"
keys = re.findall(pat,string)
vals = [val.strip() for val in re.split(pat,string)]
## ignoring vals[0] as it will always be the empty string
result = dict(zip(keys, vals[1:]))
print(result)