Python 3.6 uszipcode在半径范围内打印ZipCodes

时间:2017-07-21 14:03:54

标签: python anaconda geo zipcode

我试图在另一个邮政编码的10英里范围内返回邮政编码的值。我使用ZipcodeSearchEngine返回正确的值,我认为它正在返回一个字典,但是如何打印" Zipocde" res中的值在Mac上,使用带有Python 3.6的anaconda。请让我知道,如果你有任何问题。代码和返回值如下。

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"}]

1 个答案:

答案 0 :(得分:0)

如Cubic所述,问题尚不清楚。但是,我假设您要打印zipcode而不是关于城市的所有细节。您假设search.by_coordinate(Lat, Long, radius=10, returns=5)是错误的。它返回一个列表。您始终可以使用type(res)在python中检查变量的类型。我还假设用户应该选择一个数字作为输入。当你得到res[inp]时,你得到一个输入元素,这是一个字典。您可以使用该键从此元素获取zipcode。修改您的代码,如下所示,

if inp in res:
    print(res[inp]['Zipcode'])