Python 打印JSON元素
关于如何打印JSON元素,我有点不明白。有了Yelp,多亏了这个查询“”,我可以检索这个JSON:Python 打印JSON元素,python,json,yelp,yelp-fusion-api,Python,Json,Yelp,Yelp Fusion Api,关于如何打印JSON元素,我有点不明白。有了Yelp,多亏了这个查询“”,我可以检索这个JSON: { "businesses": [ { "id": "gaumont-wilson-toulouse-2", "name": "Gaumont Wilson", "image_url": "https://s3-media1.fl.yelpcdn.com/bphoto/dYJc874NnEJ9-jX2amrLvw/o.jpg", "is_
{
"businesses": [
{
"id": "gaumont-wilson-toulouse-2",
"name": "Gaumont Wilson",
"image_url": "https://s3-media1.fl.yelpcdn.com/bphoto/dYJc874NnEJ9-jX2amrLvw/o.jpg",
"is_closed": false,
"url": "https://www.yelp.com/biz/gaumont-wilson-toulouse-2?adjust_creative=Xi9rQmCT871UpMvNRzAfuw&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=Xi9rQmCT871UpMvNRzAfuw",
"review_count": 165,
"categories": [
{
"alias": "movietheaters",
"title": "Cinema"
}
],
"rating": 4,
"coordinates": {
"latitude": 43.6044154,
"longitude": 1.4475916
},
"transactions": [],
"location": {
"address1": "3 place du Président Thomas Wilson",
"address2": null,
"address3": null,
"city": "Toulouse",
"zip_code": "31000",
"country": "FR",
"state": "31",
"display_address": [
"3 place du Président Thomas Wilson",
"31000 Toulouse",
"France"
]
},
"phone": "+33534445050",
"display_phone": "+33 5 34 44 50 50",
"distance": 451.43923036020004
}
],
"total": 11,
"region": {
"center": {
"latitude": 43.602510035320684,
"longitude": 1.4426422119140625
}
}
}
然后我通过以下方式研究JSON:
response_data = response.json()
for i in response_data['businesses']:
print i['name']
但是“name”
是我唯一可以打印的东西
我无法打印'address1'
,'city'
或'zip\u code'
为什么?因为这些键在JSON的层次结构中不存在。它们存在于字典中的
“location”
键上。您希望使用:
print i["name"]["location"]["address1"]
因为它们存在于“位置”子字典中。你需要这样的东西:
打印i[“名称”][“位置”][“地址1”]
访问数据。答案是:
for element in response_data['businesses']:
id = element['id']
name = element['name']
city = element['location']['city']
zip_code = element['location']['zip_code']
state = element['location']['state']
display_address = element['location']['display_address']
latitude = element['coordinates']['latitude']
longitude = element['coordinates']['longitude']
phone = element['phone']
print id, name, city, zip_code, state, display_address, latitude, longitude, phone
只是一个注释——它实际上不是一个JSON对象。这是一本字典,正如你所发现的,它有点不同。