Python lặp qua mảng đối tượng json

Gói tích hợp,

{"fullname": "Tom", 
"languages": ["English", "German"]
}
1, do Python cung cấp, có thể được nhập để hoạt động với dữ liệu biểu mẫu JSON. Trong Python, JSON tồn tại dưới dạng chuỗi hoặc được lưu trữ trong đối tượng JSON

Chúng tôi sử dụng

{"fullname": "Tom", 
"languages": ["English", "German"]
}
2 để phân tích chuỗi thành từ điển. Hơn nữa, chúng tôi sử dụng vòng lặp
{"fullname": "Tom", 
"languages": ["English", "German"]
}
3 cho quá trình lặp qua từ điển

Đoạn mã sau triển khai hàm

{"fullname": "Tom", 
"languages": ["English", "German"]
}
4 và vòng lặp để lặp qua một đối tượng JSON

import json
jsonstring1 = '{"k1": "v1", "k2": "v2"}'

#Load JSON string into a dictionary
json_dicti = json.loads(jsonstring1)

#Loop along dictionary keys
for key in json_dicti:
    print(key, ":", json_dicti[key])

đầu ra

k1 : v1
k2 : v2

Lưu ý rằng từ điển python được trả về khi lệnh

{"fullname": "Tom", 
"languages": ["English", "German"]
}
4 được thực thi, không phải đối tượng JSON

Nếu đó là một tệp chứa đối tượng JSON, hàm

k1 : v1
k2 : v2
3 có thể được sử dụng để đọc tệp. Đoạn mã sau sử dụng hàm
k1 : v1
k2 : v2
3 để phân tích cú pháp tệp chứa đối tượng JSON

Giả sử tệp có tên

k1 : v1
k2 : v2
5 chứa dữ liệu này

{"fullname": "Tom", 
"languages": ["English", "German"]
}

Mã để phân tích tệp này ở bên dưới

import json

with open('man.json') as a:
    dict1 = json.load(a)
print(dict1)

đầu ra

{'fullname': 'Tom', 'languages': ['English', 'German']}

Hàm

k1 : v1
k2 : v2
6 được sử dụng ở đây để đọc tệp JSON. Ở đây cũng vậy, chúng ta có một cuốn từ điển,
k1 : v1
k2 : v2
7. Sau đó, quá trình lặp có thể được thực hiện trên từ điển

Trong JavaScript, khi bạn nghe thuật ngữ "vòng lặp", có lẽ bạn sẽ nghĩ đến việc sử dụng các phương thức vòng lặp khác nhau như vòng lặp

k1 : v1
k2 : v2
06, vòng lặp
k1 : v1
k2 : v2
07,
k1 : v1
k2 : v2
08 và các vòng lặp khác

Nhưng thật không may, trong trường hợp của các đối tượng, các phương thức này không hoạt động vì các đối tượng không thể lặp lại

Điều này không có nghĩa là chúng ta không thể lặp qua một đối tượng – nhưng điều này có nghĩa là chúng ta không thể lặp trực tiếp qua một đối tượng giống như cách chúng ta làm với một mảng

k1 : v1
k2 : v2
3

Trong bài viết này, Bạn sẽ tìm hiểu cách bạn có thể lặp qua một đối tượng trong JavaScript. Có hai phương pháp bạn có thể sử dụng - và một trong số đó có trước ngày giới thiệu ES6

Cách lặp qua một đối tượng trong JavaScript bằng vòng lặp k1 : v1 k2 : v2 09

Trước ES6, chúng tôi dựa vào phương thức

k1 : v1
k2 : v2
50 bất cứ khi nào chúng tôi muốn lặp qua một đối tượng

Vòng lặp

k1 : v1
k2 : v2
50 lặp qua các thuộc tính trong chuỗi nguyên mẫu. Điều này có nghĩa là chúng ta cần kiểm tra xem thuộc tính có thuộc về đối tượng hay không bằng cách sử dụng
k1 : v1
k2 : v2
52 bất cứ khi nào chúng ta lặp qua một đối tượng bằng vòng lặp
k1 : v1
k2 : v2
09

k1 : v1
k2 : v2
0

Để tránh căng thẳng và khó lặp lại và sử dụng phương thức

k1 : v1
k2 : v2
52, ES6 và ES8 đã giới thiệu các phương thức tĩnh đối tượng. Chúng chuyển đổi các thuộc tính đối tượng thành mảng, cho phép chúng ta sử dụng trực tiếp các phương thức mảng

Cách lặp qua một đối tượng trong JavaScript bằng các phương thức tĩnh đối tượng

Một đối tượng được tạo thành từ các thuộc tính có các cặp khóa-giá trị, tức là mỗi thuộc tính luôn có một giá trị tương ứng

Các phương thức tĩnh đối tượng cho phép chúng tôi trích xuất

k1 : v1
k2 : v2
55,
k1 : v1
k2 : v2
56 hoặc cả khóa và giá trị dưới dạng
k1 : v1
k2 : v2
57 trong một mảng, cho phép chúng tôi có nhiều sự linh hoạt đối với chúng như chúng tôi làm với các mảng thực tế

Chúng tôi có ba phương thức tĩnh đối tượng, đó là

  • k1 : v1
    k2 : v2
    
    58
  • k1 : v1
    k2 : v2
    
    59
  • k1 : v1
    k2 : v2
    
    60

Cách lặp qua một đối tượng trong JavaScript bằng phương thức k1 : v1 k2 : v2 58

Phương thức

k1 : v1
k2 : v2
58 được giới thiệu trong ES6. Nó lấy đối tượng mà chúng ta muốn lặp lại làm đối số và trả về một mảng chứa tất cả các tên thuộc tính (còn được gọi là khóa)

k1 : v1
k2 : v2
5

Điều này bây giờ mang lại cho chúng ta lợi thế khi áp dụng bất kỳ phương thức lặp mảng nào để lặp qua mảng và truy xuất giá trị của từng thuộc tính

k1 : v1
k2 : v2
6

Điều này sẽ trở lại

k1 : v1
k2 : v2
1

Chúng tôi cũng có thể sử dụng khóa để lấy giá trị bằng cách sử dụng ký hiệu ngoặc, chẳng hạn như

k1 : v1
k2 : v2
63 như bên dưới

k1 : v1
k2 : v2
3

Điều này sẽ trở lại

k1 : v1
k2 : v2
4

Trước khi tiếp tục, hãy sử dụng phương pháp này để tổng hợp tất cả dân số bằng cách lặp qua để biết tổng dân số

k1 : v1
k2 : v2
5

Cách lặp qua một đối tượng trong JavaScript bằng phương thức k1 : v1 k2 : v2 59

Phương thức

k1 : v1
k2 : v2
59 rất giống với phương thức
k1 : v1
k2 : v2
58 và được giới thiệu trong ES8. Phương thức này lấy Đối tượng mà chúng ta muốn lặp lại làm đối số và trả về một mảng chứa tất cả các giá trị khóa

k1 : v1
k2 : v2
9

Điều này bây giờ mang lại cho chúng ta lợi thế khi áp dụng bất kỳ phương thức lặp mảng nào để lặp qua mảng và truy xuất

k1 : v1
k2 : v2
67 của mỗi thuộc tính

k1 : v1
k2 : v2
1

Điều này sẽ trở lại

k1 : v1
k2 : v2
00

Chúng ta có thể thực hiện phép tính tổng một cách hiệu quả vì chúng ta có thể lặp trực tiếp

k1 : v1
k2 : v2
01

Cách lặp qua một đối tượng trong JavaScript với Object. phương thức entry()

Phương pháp

k1 : v1
k2 : v2
60 cũng được giới thiệu với ES8. Theo nghĩa cơ bản, những gì nó làm là xuất ra một mảng các mảng, theo đó mỗi mảng bên trong có hai phần tử là thuộc tính và giá trị

k1 : v1
k2 : v2
02

kết quả này

k1 : v1
k2 : v2
03

Điều này trả về một mảng các mảng, với mỗi mảng bên trong có

k1 : v1
k2 : v2
69. Bạn có thể sử dụng bất kỳ phương thức mảng nào để lặp qua

k1 : v1
k2 : v2
04

Chúng tôi có thể quyết định hủy cấu trúc mảng, vì vậy chúng tôi nhận được

k1 : v1
k2 : v2
10 và giá trị

k1 : v1
k2 : v2
05

Bạn có thể tìm hiểu thêm về cách lặp qua mảng trong bài viết này

kết thúc

Trong hướng dẫn này, bạn đã biết rằng cách tốt nhất để lặp qua một đối tượng là sử dụng bất kỳ phương thức tĩnh nào của đối tượng dựa trên nhu cầu của bạn để chuyển đổi thành một mảng trước khi lặp

Chúc các bạn code vui vẻ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Python lặp qua mảng đối tượng json
Joel Olawanle

Nhà phát triển Frontend & Người viết kỹ thuật


Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu