Vì vậy, nếu bạn muốn biết sự khác biệt giữa đối tượng JSON và mảng JSON là gì, thì bài viết này là dành cho bạn
Bắt đầu nào
- PIP so với. PIP3. Sự khác biệt?
nội dung.
Sự khác biệt giữa Đối tượng JSON và Mảng JSON là gì?
JSON [Ký hiệu đối tượng JavaScript] là một định dạng để lưu trữ và trao đổi dữ liệu dưới dạng khóa và giá trị. Ví dụ: khi truy xuất phản hồi từ yêu cầu HTTP
Sự khác biệt giữa một đối tượng JSON và một mảng JSON chỉ là vấn đề sở thích. Nếu bạn chịu trách nhiệm phát triển, điều đó tùy thuộc vào bạn
Trong phần sau, bạn sẽ tìm hiểu chính xác đối tượng JSON và mảng JSON là gì và chúng khác nhau như thế nào được giải thích bằng Python
Trong Python, làm việc với JSON được thực hiện tốt nhất bằng cách chuyển đổi chúng thành các đối tượng từ điển.
Định dạng bản ghi JSON rất ngắn gọn và không yêu cầu thông tin trùng lặp như XML
Đối tượng JSON trong Python là gì?
Hãy tạo một đối tượng JSON và từ điển trong Python
{
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": "362"
}
car = {
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": "362"
}
Ở đây chúng ta thấy kiểu dáng gần như giống hệt nhau trên hai đối tượng
Đầu tiên là đối tượng JSON mô tả ô tô và đối tượng thứ hai là từ điển Python có cùng giá trị.
Bạn có thể chuyển các đối tượng JSON ở dạng văn bản thuần túy, điều này tốt và xấu.
Ưu điểm là dễ đọc và phân tích, nhược điểm là bảo mật.
Deserialization là quá trình chuyển đổi JSON thành các đối tượng.
Đối với thư viện tiêu chuẩn Python json, quá trình giải tuần tự hóa sẽ tạo ra một đầu ra từ điển.
Hãy chuyển đổi một chuỗi JSON thành một từ điển
>> import json
>> st_car = '{"manufacturer": "Tesla Inc.", "model": "Tesla S", "engineType": "elecrical", "horsePower": 362}'
>> js_car = json.loads[st_car]
>> print[js_car]
{'manufacturer': 'Tesla Inc.', 'model': 'Tesla S', 'engineType': 'elecrical', 'horsePower': 362}
Sau khi giải tuần tự hóa, bạn có thể truy cập các trường JSON dưới dạng các trường từ điển.
Ví dụ: đây là nhà sản xuất ô tô của bạn
>> print[js_car["manufacturer"]]
Tesla Inc.
Ở đây, đối tượng JSON được tải từ một chuỗi, giống như phản hồi cho yêu cầu HTTP.
Bạn cũng có thể tải một đối tượng JSON từ một tệp bằng phương thức json. trọng tải
Để lưu một từ điển vào một đối tượng JSON, bạn cần thực hiện ngược lại quá trình giải tuần tự hóa, được gọi là tuần tự hóa
>> js_st = json.dumps[js_car]
>> print[js_st]
{'manufacturer': 'Tesla Inc.', 'model': 'Tesla S', 'engineType': 'elecrical', 'horsePower': 362}
Khi tuần tự hóa, bạn có thể chọn cách đối tượng sẽ hiển thị
>> js_st = json.dumps[js_car, indent = 4]
>> print[js_st]
{
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": 362
}
Định dạng đẹp này hoạt động tốt với các đối tượng JSON có nhiều lồng nhau
Bạn cũng có thể tuần tự hóa một đối tượng JSON thành một tệp bằng phương thức json. bãi rác
Trong ví dụ này, chúng tôi đã sử dụng chuỗi và số nguyên làm giá trị trường. Nhưng JSON toàn diện hơn.
Bạn có thể sử dụng các kiểu dữ liệu này làm giá trị trường
- Chuỗi. được đặt trong dấu ngoặc kép và có thể chứa các ký tự thoát, chẳng hạn như lập bảng, xuống dòng và ký tự Unicode
- Số. bao gồm cả số thực và số mũ
- Boolean. đúng và sai
- Không có. không có giá trị
- đối tượng JSON. một đối tượng JSON khác
- mảng JSON. một mảng JSON khác
Các loại JSON được chuyển đổi thành các loại dữ liệu Python trong quá trình giải tuần tự hóa như sau
JSONPythonobjectdictarrayliststringstrnumber [số nguyên]số nguyên [thực]floattrueTruefalseFalsenullNoneVà ngược lại khi họ đăng nhiều kỳ
PythonJSONdictobjectlist, tuplearraystrstringint, floatnumberTruetrueFalsefalseNonenullMảng JSON trong Python là gì?
Các mảng JSON có cấu trúc giống như các danh sách trong ngoặc của Python. Chúng có thể có cùng kiểu dữ liệu với giá trị trường đối tượng JSON, bao gồm các mảng lồng nhau.
Hãy thêm một trường pin vào đối tượng JSON ở trên, giá trị của nó là một mảng JSON.
Trong mảng này, chúng tôi sẽ theo dõi các giá trị dung lượng pin của Tesla
car = {
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": "362"
}
0Khi được giải tuần tự hóa, mảng JSON trở thành danh sách Python.
Bạn có thể tham khảo các yếu tố của danh sách này theo chỉ số.
Mảng JSON ở đây đại diện cho giá trị của trường pin trong đối tượng JSON
car = {
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": "362"
}
1car = {
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": "362"
}
2Bạn cũng có thể chuyển một mảng JSON ở mức cao nhất của tệp hoặc chuỗi JSON. Hãy thêm một chiếc xe khác và xem điều gì sẽ xảy ra
car = {
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": "362"
}
3_______3_______Trong trường hợp này, bạn có một mảng JSON chứa hai đối tượng JSON
Bạn chỉ có thể tham chiếu đến một đối tượng cụ thể trong mảng JSON bằng cách sử dụng chỉ mục của nó
Bạn có thể có cùng cấu trúc dữ liệu mà không cần sử dụng mảng JSON, chỉ sử dụng các đối tượng JSON lồng nhau. Xem tại đây
car = {
"manufacturer": "Tesla Inc.",
"model": "Tesla S",
"engineType": "elecrical",
"horsePower": "362"
}
5_______1_______6Chỉ có một đối tượng JSON với các đối tượng JSON khác bên trong. Các đối tượng JSON chứa hai trường có tên ô tô và các giá trị là các đối tượng JSON tương ứng.
Nếu trình bao bọc là một đối tượng JSON thay vì một mảng, thì bạn có thể tham chiếu đến các đối tượng lồng nhau theo tên của chúng chứ không phải theo chỉ mục số của chúng
Đối tượng JSON so với. Mảng JSON. Sự khác biệt là gì?
Việc sử dụng phương pháp này hay phương pháp khác để chuyển nhiều đối tượng trong JSON tùy thuộc vào bất kỳ thứ gì bạn đang làm việc với. Nó chỉ là một vấn đề của hương vị.
Nếu tất cả tùy thuộc vào bạn, bạn có thể chọn theo cách bạn muốn. Sử dụng các đối tượng JSON lồng nhau và tham chiếu các trường của chúng theo tên trường hoặc sử dụng các mảng JSON và tham chiếu các phần tử của chúng theo chỉ mục
Điều đáng chú ý là khi bạn giải mã một đối tượng JSON có cấu trúc bị hỏng, bạn sẽ nhận được JSONDecodeError.
Ví dụ: nếu bạn quên chỉ định tên của nhà sản xuất trường cho một trong các phần tử mảng JSON