Hướng dẫn python loop json array - mảng json vòng lặp python

Tôi có dữ liệu sau đây lấy từ API. Tôi đang cố gắng truy cập tên nhà hàng bằng kịch bản Python và có kịch bản hiển thị nó. Đây là các tập tin của tôi:

test.py

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

Tệp JSON của tôi như sau: (đơn giản hóa)

    {
  "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"
        },

Hiện tại, nó hiển thị tên nhà hàng đầu tiên ba lần. Tôi muốn nó lặp qua mỗi đối tượng restaurant và hiển thị giá trị cho "tên" khóa. Bất kỳ trợ giúp sẽ được đánh giá cao.

Đầu tiên, chúng tôi sẽ hiểu mảng JSON và sau đó lặp qua nó trong Python.

Vậy một mảng json là gì? Một mảng JSON là danh sách python của khóa: cặp giá trị được đặt hàng trong tự nhiên. Vì vậy, mảng JSON chỉ là một từ điển Python chứa một danh sách khóa: cặp giá trị. Mảng JSON có thể là bất kỳ loại dữ liệu. Nó có thể lưu trữ chuỗi, số nguyên và các loại dữ liệu khác.

Một mảng JSON cũng được lập chỉ mục, điều đó có nghĩa là chúng ta có thể truy cập dữ liệu bên trong mảng bằng cách sử dụng giá trị chỉ mục. Một mảng JSON được đặt trong [] dấu ngoặc vuông và giá trị bên trong mảng được phân tách bằng dấu phẩy (,).

Cũng đọc: & nbsp; Cách lặp qua JSON với Subkeys in Python

Tạo mảng JSON và đối tượng

Chúng ta có thể tạo mảng JSON và các đối tượng từ danh sách và từ điển Python. Để tạo một mảng JSON của các chuỗi, chúng ta có thể sử dụng dấu ngoặc xoăn {} với các trích dẫn đơn như trong mã Python bên dưới.

Và để tạo một đối tượng JSON, chúng tôi có thể sử dụng chức năng JSON.Loads () trong Python sau khi nhập thư viện JSON JSON vào chương trình Python cũng được hiển thị trong mã Python sau đây.json.loads()” function in the Python after importing the “json” library into the Python program also shown in the following Python code below.

Lặp qua một mảng json

Chúng tôi sử dụng cho chức năng vòng lặp để lặp qua mảng JSON sau khi tạo nó. Trước tiên, chúng tôi nhập thư viện JSON bằng cách sử dụng chức năng nhập và sau đó tạo chức năng bằng từ khóa DEF.json library by using the import function and then create a function using def keyword.

Sau khi khởi tạo chức năng, chúng tôi tạo một mảng JSON bằng cách sử dụng một trích dẫn duy nhất với dấu ngoặc xoăn {}. Sau đó chúng tôi cung cấp khóa: cặp giá trị cho nó. Sau khi tạo một mảng JSON, chúng tôi sau đó chuyển đổi nó thành các đối tượng JSON bằng hàm json.loads ().

Bây giờ, JSON Array đã được tạo và chúng ta có thể sử dụng Loop truyền thống để lặp bên trong mảng JSON và in nó Khóa hoặc giá trị hoặc chúng ta cũng có thể in (khóa: cặp giá trị) cả hai.

Tham khảo mã Python dưới đây để lặp qua mảng JSON:

import json

def main():

    # creating JSON array
    j_String = '{"Gaurav":"Pro-Coder","Car":"Ferrari","Home":"Seattle"}'

    # changing JSON string into a JSON object
    j_Object = json.loads(j_String)

    # printing keys and values
    for i in j_Object:
        value = j_Object[i]
        print("Key and Value pair are ({}) = ({})".format(i, value))

    pass

if __name__ == '__main__':
    main()

Output:

Key and Value pair are (Gaurav) = (Pro-Coder)
Key and Value pair are (Car) = (Ferrari)
Key and Value pair are (Home) = (Seattle)

Bạn cũng có thể tham khảo bộ mã hóa và bộ giải mã liên kết Python JSON này để hiểu rõ hơn về mã hóa và giải mã JSON trong Python.