2017-02-24 102 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]为您提供餐馆列表中的第一家餐厅..​​....并且你每次都打印它的名字)