我正在尝试使用zippopotam.us获取特定城市的邮政编码。我有下面的代码可以正常工作,但是当我尝试访问post code返回的密钥时TypeError: expected string or buffer
post code
TypeError: expected string or buffer
r = requests.get('http://api.zippopotam.us/us/ma/belmont') j = r.json() data = json.loads(j) print j['state'] print data['places']['latitude']
完整的JSON输出:
{ "country abbreviation": "US", "places": [ { "place name": "Belmont", "longitude": "-71.4594", "post code": "02178", "latitude": "42.4464" }, { "place name": "Belmont", "longitude": "-71.2044", "post code": "02478", "latitude": "42.4128" } ], "country": "United States", "place name": "Belmont", "state": "Massachusetts", "state abbreviation": "MA" }
谢谢你的帮助。
我没有意识到第一个嵌套元素实际上是一个数组。正确访问邮政编码密钥的方法如下:
r = requests.get('http://api.zippopotam.us/us/ma/belmont') j = r.json() print j['state'] print j['places'][1]['post code']