Python 3.6 uszipcode 打印半径内的邮政编码

Python 3.6 uszipcode Print ZipCodes within a radius

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

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

正如 Cubic 所指出的,问题不明确。但是,我假设您想打印邮政编码而不是有关城市的所有详细信息。您假设 search.by_coordinate(Lat, Long, radius=10, returns=5) 是错误的。它 returns 一个列表。您始终可以使用 type(res) 检查 python 中的变量类型。我还假设用户应该 select 一个数字作为输入。当您获得 res[inp] 时,您将获得输入的一个元素,即字典。您可以使用密钥从此元素获取邮政编码。修改你的代码如下,

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