I am trying to return the values of the zip codes in within a 10 mile radius of another zip code. I am returning the correct values using ZipcodeSearchEngine and I thought it was returning a dictionary, but how to do I just print the "Zipocde" values in res. On a Mac, using anaconda with Python 3.6. Please let me know if you have any questions. Code and return values below.
from uszipcode import ZipcodeSearchEngine
search = ZipcodeSearchEngine()
area = search.by_zipcode("10001")
Lat = area['Latitude']
Long = area['Longitude']
print('This is the Longitude:'+ ' ' + str(Long))
print('This is the Latitude:'+ ' ' + str(Lat))
res = search.by_coordinate(Lat, Long, radius=10, returns=5)
print(res)
inp = input("Select key to print value for!")
if inp in res:
print(res[inp])
[{"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"}, {"City":
"New York", "Density": 300.0, "HouseOfUnits": 1, "LandArea": 0.03,
"Latitude": 40.751776899999996, "Longitude": -73.9965928, "NEBoundLatitude":
40.752722799999994, "NEBoundLongitude": -73.993948, "Population": 9,
"SWBoundLatitude": 40.749553000000006, "SWBoungLongitude": -74.0084871,
"State": "NY", "TotalWages": null, "WaterArea": 0.0, "Wealthy": null,
"Zipcode": "10199", "ZipcodeType": "Standard"}, {"City": "New York",
"Density": 16340.625, "HouseOfUnits": 4425, "LandArea": 0.32, "Latitude":
40.755322, "Longitude": -73.9932872, "NEBoundLatitude": 40.7648468,
"NEBoundLongitude": -73.98088800000001, "Population": 5229, "SWBoundLatitude":
40.749724, "SWBoungLongitude": -74.0124001, "State": "NY", "TotalWages":
810026753.0, "WaterArea": 0.0, "Wealthy": 154910.45190284948, "Zipcode":
"10018", "ZipcodeType": "Standard"}, {"City": "New York", "Density": 4600.0,
"HouseOfUnits": 0, "LandArea": 0.02, "Latitude": 40.7502013, "Longitude":
-73.9931036, "NEBoundLatitude": 40.75219, "NEBoundLongitude": -73.990623,
"Population": 92, "SWBoundLatitude": 40.74910089999999, "SWBoungLongitude":
-73.994844, "State": "NY", "TotalWages": null, "WaterArea": 0.0, "Wealthy":
null, "Zipcode": "10119", "ZipcodeType": "Standard"}, {"City": "New
York","Density": 56161.36363636363, "HouseOfUnits": 17958, "LandArea": 0.44,
"Latitude": 40.7602619, "Longitude": -73.9932872, "NEBoundLatitude":
40.768738, "NEBoundLongitude": -73.9781161, "Population": 24711,
"SWBoundLatitude": 40.723624900000004, "SWBoungLongitude": -74.004786,
"State": "NY", "TotalWages":1686575064.0, "WaterArea": 0.0, "Wealthy":
68251.99562947675, "Zipcode": "10036","ZipcodeType": "Standard"}]
As noted by Cubic, the question is unclear. However, I assume that you want to print the zipcode instead of all the detail about city. You assumption that search.by_coordinate(Lat, Long, radius=10, returns=5)
is wrong. It returns a list. You can always check the type of the variable in python using type(res)
. I also assume that users are supposed to select a number as input. When you get res[inp]
you get one element of the input, which is a dictionary. You could use the key to get the zipcode from this element. Modify your code as follows,
if inp in res:
print(res[inp]['Zipcode'])