Easy python library to query city / state name by zip code?

Pretty simple here, I'm looking for a lightweight library that will allow me to find a pair of cities / states for a given zip code. I am using django FWIW. Thanks in advance.

+4
source share
4 answers

Try pyzipcode . Example from the home page:

>>> from pyzipcode import ZipCodeDatabase >>> zcdb = ZipCodeDatabase() >>> zipcode = zcdb[54115] >>> zipcode.zip u'54115' >>> zipcode.city u'De Pere' >>> zipcode.state u'WI' >>> zipcode.longitude -88.078959999999995 >>> zipcode.latitude 44.42042 >>> zipcode.timezone -6 
+10
source

The latest pyzipcode version on PYPI is vulnerable to SQL injection, so it is probably best to use this fork , which seems to fix the problems.

+3
source

uszipcode is Python 's most powerful zipcode programmable database. And not

 >>> from uszipcode import ZipcodeSearchEngine >>> search = ZipcodeSearchEngine() >>> zipcode = search.by_zipcode("10001") >>> print(zipcode) { "City": "New York", "Density": 34035.48387096774, "HouseOfUnits": 12476, "LandArea": 0.62, "Latitude": 40.75368539999999, "Longitude": -73.9991637, "NEBoundLatitude": 40.8282129, "NEBoundLongitude": -73.9321059, "Population": 21102, "SWBoundLatitude": 40.743451, "SWBoungLongitude": -74.00794499999998, "State": "NY", "TotalWages": 1031960117.0, "WaterArea": 0.0, "Wealthy": 48903.42702113544, "Zipcode": "10001", "ZipcodeType": "Standard" } # fuzzy city, state search, case insensitive, spelling mistake tolerant # all zipcode in new york >>> result = search.by_city_and_state(city="newyork", state="NY") >>> search.export_to_csv(result, "result.csv") 

Very easy to use for creating advanced searches

 >>> result = search.find(city="new york", ... wealthy=100000, sort_by="Wealthy", ascending=False, returns=10) 
+3
source

I built Zipcodes to remove the dependency on SQLite that all other zipcode libraries had. SQLite is not available in AWS Lambda, so this library provides an easy and powerful query interface through a gzipped JSON file containing information about US zip codes. The following are some examples:

Matching:

 >>> # Handles of Zip+4 zip-codes nicely. :) >>> pprint(zipcodes.matching('77429-1145')) [{'zip_code': '77429', 'zip_code_type': 'STANDARD', 'city': 'CYPRESS', 'state': 'TX', 'lat': 29.96, 'long': -95.69, 'world_region': 'NA', 'country': 'US', 'active': True}] 

Act:

 >>> # Whether the zip-code exists within the database. >>> print(zipcodes.is_valid('06463')) False 

Similarity:

 >>> # Search for zipcodes that begin with a pattern. >>> pprint(zipcodes.similar_to('0643')) [{'active': True, 'city': 'GUILFORD', 'country': 'US', 'lat': 41.28, 'long': -72.67, 'state': 'CT', 'world_region': 'NA', 'zip_code': '06437', 'zip_code_type': 'STANDARD'}, {'active': True, 'city': 'HADDAM', 'country': 'US', 'lat': 41.45, 'long': -72.5, 'state': 'CT', 'world_region': 'NA', 'zip_code': '06438', 'zip_code_type': 'STANDARD'}, ... # remaining results truncated for readability... ] 

Advanced Filtering:

 >>> # Arbitrary nesting of similar_to and filter_by calls, allowing for great precision while filtering. >>> pprint(zipcodes.similar_to('2', zips=zipcodes.filter_by(zipcodes.list_all(), active=True, city='WINDSOR'))) [{'active': True, 'city': 'WINDSOR', 'country': 'US', 'lat': 33.48, 'long': -81.51, 'state': 'SC', 'world_region': 'NA', 'zip_code': '29856', 'zip_code_type': 'STANDARD'}, {'active': True, 'city': 'WINDSOR', 'country': 'US', 'lat': 36.8, 'long': -76.73, 'state': 'VA', 'world_region': 'NA', 'zip_code': '23487', 'zip_code_type': 'STANDARD'}, {'active': True, 'city': 'WINDSOR', 'country': 'US', 'lat': 36.0, 'long': -76.94, 'state': 'NC', 'world_region': 'NA', 'zip_code': '27983', 'zip_code_type': 'STANDARD'}] 
0
source

All Articles