2017-05-24 21 views
-1

JSON要素を印刷する方法についてはわかりません。 Yelpのでは、このクエリのおかげで「https://api.yelp.com/v3/businesses/search?cc=FR&location=Toulouse&categories=movietheaters&limit=1」私は、このJSONを取得できます。JSON要素の印刷

{ 
    "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_code'を印刷できません。

なぜですか?

+0

ジャストノートは - それは実際にはJSONオブジェクトではありません。それはあなたが発見しているように、少し異なります辞書です。 –

答えて

0

答えは:

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 
0

これらのキーはJSON内のその階層に存在しないためです。辞書の中には、"location"というキーがあります。

print i["name"]["location"]["address1"] 
+0

全く動作しません:( –

0

これらは「ロケーション」サブディクショナリに存在するためです。データにアクセスするために

print i["name"]["location"]["address1"]

:あなたはこのようなものが必要でしょう。

+0

いいえ、動作しません –