class GeocodedAddress(object):
def __init__(self, address, image_url, confidence, latitude, longitude):
self.address = address
self.image_url = image_url
self.confidence = confidence
self.latitude = latitude
self.longitude = longitude
class DCGeocoder(object):
api_url = 'http://api.dc.gov/geocoding/v1/search.json'
def geocode(address):
url = '%s?%s' % (DCGeocoder.api_url,
urllib.urlencode({'address':address}))
response = urllib2.urlopen(url)
response = json.loads(response.read())
addresses = []
for addy in response['addresses']:
address = {}
for attribute in addy['address']:
address.update(attribute)
addresses.append(
GeocodedAddress(address['fulladdress'],
'%s/%s/%s' % (address['inageurl'], address['imagedir'],
address['imagename']), address['confidencelevel'],
address['latitude'], address['longitude']))
return addresses
geocode = staticmethod(geocode)
>>> print DCGeocoder.geocode('1 dupont circle, nw')[0].image_url