Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieving the US Postal Zip code for a street address using Python

Tags:

python

gis

What is the most efficient way one would go about retrieving the U.S. Postal zip code for a street address using Python? Is this something that is even possible?

Preferably, something that includes a local database as oppose to a remote API call of some sort.

Thanks in advance for any help one may be able to offer.

like image 720
Belmin Fernandez Avatar asked Sep 07 '10 23:09

Belmin Fernandez


1 Answers

May be a start: The Zip Code Database Project

googlemaps – Google Maps and Local Search APIs in Python

GoogleMaps.geocode(query, sensor='false', oe='utf8', ll='', spn='', gl='')

Given a string address query, return a dictionary of information about that location, including its latitude and longitude. Interesting bits:

>>> gmaps = GoogleMaps(api_key)
>>> address = '350 Fifth Avenue New York, NY'
>>> result = gmaps.geocode(address)
>>> placemark = result['Placemark'][0]
>>> lng, lat = placemark['Point']['coordinates'][0:2]
# Note these are backwards from usual
>>> print lat, lng
40.6721118 -73.9838823
>>> details = placemark['AddressDetails']['Country']['AdministrativeArea']
>>> street = details['Locality']['Thoroughfare']['ThoroughfareName']
>>> city = details['Locality']['LocalityName']
>>> state = details['AdministrativeAreaName']
>>> zipcode = details['Locality']['PostalCode']['PostalCodeNumber']
>>> print ', '.join((street, city, state, zipcode))
350 5th Ave, Brooklyn, NY, 11215
like image 55
Leniel Maccaferri Avatar answered Oct 11 '22 18:10

Leniel Maccaferri