2017-02-24 128 views
0

我有一個從API採取了以下數據,我想用python腳本訪問餐廳的名字,並有腳本顯示它,這裏有我的文件:循環通過JSON陣列與Python

測試。 PY

with open('data.json') as data_file:  
    data = json.load(data_file) 
    for restaurant in data: 
     print data ['restaurants'][0]['restaurant']['name'] 

我的JSON文件如下:(簡體)

{ 
    "results_found": 3296, 
    "results_start": 0, 
    "results_shown": 20, 
    "restaurants": [ 
    { 
     "restaurant": { 
     "R": { 
      "res_id": 9101083 
     }, 
     "id": "9101083", 
     "name": "My Meat Wagon", 
      "address": "Market Square, Smithfield, Dublin Dublin 7", 
      "locality": "Smithfield", 
      "city": "Dublin", 
      "city_id": 91, 
      "latitude": "53.3489980000", 
      "longitude": "-6.2788120000", 
      "zipcode": "Dublin 7", 
     "events_url": "https://www.zomato.com/dublin/my-meat-wagon-smithfield/events#tabtop?utm_source=api_basic_user&utm_medium=api&utm_campaign=v2.1", 
     "establishment_types": [] 
     } 
    }, 
    { 
     "restaurant": { 
     "R": { 
      "res_id": 9101628 
     }, 
     "id": "9101628", 
     "name": "Wowburger", 
     "url": "https://www.zomato.com/dublin/wowburger-temple-bar?utm_source=api_basic_user&utm_medium=api&utm_campaign=v2.1", 
     "location": { 
      "address": "The Workmans Club, 11 Wellington Quay, Temple Bar, Dublin Dublin 2", 
      "locality": "The Workmans Club", 
      "city": "Dublin", 
      "city_id": 91, 
      "latitude": "53.3452863158", 
      "longitude": "-6.2663815543", 
      "zipcode": "Dublin 2", 
      "country_id": 97, 
      "locality_verbose": "The Workmans Club, Dublin" 
     }, 
     "switch_to_order_menu": 0, 
     "cuisines": "Burger", 
     "average_cost_for_two": 20, 
     "establishment_types": [] 
     } 
    }, 
    { 
     "restaurant": { 
     "R": { 
      "res_id": 16520426 
     }, 
     "id": "16520426", 
     "name": "Brother Hubbard", 
      "locality_verbose": "North City, Dublin" 
     }, 

的那一刻,我有它顯示的第一個結果的名字三次,我希望它遍歷每個「餐廳」鍵並顯示關鍵「名稱」的價值在它的任何幫助,將不勝感激。

回答

1

restaurants是你的清單,你要遍歷這個關鍵:

for restaurant in data['restaurants']: 
    print restaurant['restaurant']['name'] 
+0

謝謝!那工作 – Abdul

0
with open('data.json') as data_file:  
data = json.load(data_file) 
for restaurant in data['restaurant']: 
    print restaurant['restaurant']['name'] 

這樣,您將循環遍歷字典的列表中的元素的「餐館」字段並輸出其內名。

你真的很接近,你之前做的是循環遍歷你的json文件中的所有主要字段,並且每次打印第一家餐廳的名稱(data['restaurants'][0]爲您提供餐館列表中的第一家餐廳..​​....並且你每次都打印它的名字)