Ngoài ra, bạn sẽ tìm ra cách kết hợp hai danh sách riêng biệt với tên trường và giá trị thành một đối tượng JSON duy nhất
Vì vậy, những điều đầu tiên đầu tiên
JSON là gì?
theo json. org, JSON là một định dạng trao đổi dữ liệu nhẹ. Thật dễ dàng cho con người để đọc và viết.
Máy có thể dễ dàng diễn giải và tạo JSON.
Đừng bị đe dọa bởi JavaScript trong từ viết tắt. JSON được sinh ra từ ngôn ngữ này nhưng hóa ra lại là một công cụ tuyệt vời để gửi dữ liệu, chẳng hạn như trong các yêu cầu HTTP. Nó nhỏ gọn, nhẹ và dễ đọc.
Vì vậy, thật dễ dàng để chuyển nó qua mạng, dễ dàng phân tích cú pháp và dễ dàng đọc dưới dạng văn bản đơn giản
Sự khác biệt giữa JSON và XML là gì?
Nếu bạn đã quen thuộc với XML, thì JSON cũng rất giống. Ngoài ra còn có các trường có tên và giá trị
Hãy so sánh JSON và XML cho cùng một đối tượng
Đây là JSON
[
{
"name":"Alice",
"age": 31,
"children": [
{
"name":"Kate",
"sex":"girl",
"age": 4
},
{
"name":"John",
"sex":"boy",
"age": 2
}
]
},
{
"name":"Bob",
"age": 35,
"children":null
},
{
"name":"Christine",
"age": 25,
"children": [
{
"name":"Ada",
"sex":"girl",
"age": 1
}
]
}
]
Đây là XML
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
XML trông khó đọc hơn vì các thẻ mở và đóng. Tuy nhiên, nói chung, cả hai định dạng đều có thể được đọc mà không cần xử lý thêm
Đối tượng JSON và Mảng JSON
Hãy xem xét đối tượng JSON. Trong trường hợp này, đó là một mảng JSON. Nó được đặt trong dấu ngoặc vuông và có thể chứa các giá trị thuộc các loại khác nhau
- Các mảng JSON khác
- Các đối tượng JSON được đặt trong dấu ngoặc nhọn
- Giá trị chuỗi trích dẫn
- Giá trị số [số nguyên và số thực]
- Booleans [đúng hoặc sai]
- Giá trị trống [không có]
Mảng trên chứa ba đối tượng JSON được phân tách bằng dấu phẩy. Dấu ngoặc nhọn xác định các đối tượng JSON
Xem tại đây để biết sự khác biệt giữa mảng JSON và đối tượng JSON
Hãy nhìn vào đối tượng đầu tiên trong mảng. Nó chứa một loạt các trường có tên là các chuỗi trong dấu ngoặc kép.
Sau tên trường, bạn viết dấu hai chấm rồi đến giá trị của trường. Trường “tên” là một chuỗi “Alex”, trường “tuổi” là số 31 và trường “trẻ em” là một mảng JSON có hai đối tượng JSON
Làm cách nào để chuyển đổi danh sách Python thành một mảng hoặc đối tượng JSON?
Python có mô-đun riêng để làm việc với các Đối tượng JSON. Bạn có thể nhập nó như thế này
import json
Sau đó, bạn sẽ nhận được các phương thức để chuyển đổi một chuỗi hoặc tệp thành một đối tượng Python và ngược lại
Danh sách Python có cấu trúc tương tự nhất với mảng JSON, vì vậy chúng được chuyển đổi trực tiếp thành mảng JSON bằng cách sử dụng phương thức kết xuất
import json
lst = [1, 2, 3]
json_string = json.dumps[lst]
print[json_string]
[1, 2, 3]
Đối tượng Python nào gần với đối tượng JSON nhất? . nếu bạn biết dù chỉ một chút Python, bạn có thể đoán rằng đó là một cuốn từ điển.
Từ điển cũng có thể được chuyển đổi thành một đối tượng JSON bằng phương thức kết xuất
import json
dic = {"a": 1, "b": 2}
json_string = json.dumps[dic]
print[json_string]
{"a": 1, "b": 2}
Hãy xây dựng một từ điển tương ứng với đối tượng JSON của chúng ta từ mảng và chuyển đổi nó sang định dạng JSON
Lưu ý rằng Python sẽ cho phép bạn đặt dấu ngắt dòng bên trong bất kỳ dấu ngoặc đơn nào. Cũng giống như các tab và dấu cách, chúng được bỏ qua để bạn có thể viết đối tượng của mình một cách độc đáo
import json
dic = {
"name":"Alice",
"age": 31,
"children": [
{
"name":"Kate",
"sex":"girl",
"age": 4
},
{
"name":"John",
"sex":"boy",
"age": 2
}
]
}
json_string = json.dumps[dic]
print[json_string]
{"name": "Alice", "age": 31, "children": [{"name": "Kate", "sex": "girl", "age": 4}, {"name": "John", "sex": "boy", "age": 2}]}
Như bạn có thể thấy, đầu ra là một chuỗi phẳng. Nếu bạn lưu nó vào một tập tin, nó sẽ không thuận tiện để đọc. May mắn thay, phương thức kết xuất có một tham số thụt lề tiện dụng cho phép bạn định dạng chuỗi
import json
dic = {
"name":"Alice",
"age": 31,
"children": [
{
"name": "Kate",
"sex": "girl",
"age": 4
},
{
"name": "John",
"sex": "boy",
"age": 2
}
]
}
json_string = json.dumps[dic, indent = 2]
print[json_string]
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
0Đầu ra này dễ đọc hơn
Làm cách nào để chuyển đổi một mảng hoặc đối tượng JSON thành danh sách Python?
Trong trường hợp bạn muốn tải một đối tượng từ JSON vào danh sách, bạn phải sử dụng phương thức tải.
Nhân tiện, việc chuyển đổi một đối tượng [ví dụ: danh sách hoặc từ điển Python] thành chuỗi JSON được gọi là tuần tự hóa, đừng lo lắng khi bạn bắt gặp từ này.
Quá trình đảo ngược để lấy một đối tượng từ chuỗi JSON được gọi là quá trình giải tuần tự hóa
Hãy giải tuần tự hóa một từ điển từ một chuỗi
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
1
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
2Khi bạn đã giải tuần tự hóa một đối tượng JSON, bạn có thể tham khảo các giá trị của trường theo tên của chúng
Ví dụ, trong ví dụ trên, bạn hiển thị giá trị của tên trường sau khi deserializing.
Lưu ý rằng chuỗi JSON nằm trong dấu ngoặc đơn và tất cả các chuỗi bên trong đối tượng JSON đều nằm trong dấu ngoặc kép. Nếu bạn không làm điều này, bạn sẽ phải thoát mọi trích dẫn kép trong chuỗi
Ngoài ra, hãy đảm bảo rằng bạn đặt tên trường trong dấu ngoặc kép trong đối tượng JSON
Không giống như Python, nơi bạn có thể viết chuỗi trong cả dấu ngoặc đơn và dấu ngoặc kép, dấu ngoặc đơn trong bản ghi đối tượng sẽ gây ra lỗi
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
3_______1_______4Làm cách nào để chuyển đổi nhiều danh sách Python thành một đối tượng JSON?
Nếu bạn có hai danh sách thì sao?
Một với các trường và một với các giá trị.
Làm thế nào để bạn chuyển đổi chúng thành một đối tượng JSON trong trường hợp này?
Để làm điều này, bạn sẽ phải chuyển đổi danh sách thành từ điển. Bạn có thể làm điều này chẳng hạn với cách hiểu từ điển
Bạn lặp qua các chỉ mục và điền các khóa và giá trị của từ điển bằng các giá trị từ danh sách. Sau đó, bạn chuyển từ điển sang JSON bằng phương thức dumps
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
5đầu ra.
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
6Một cách khác là sử dụng chức năng zip. Nó nhận hai danh sách làm đầu vào và trả về một chuỗi các bộ giá trị từ các danh sách đó.
Phần tử đầu tiên của đối tượng zip là giá trị đầu tiên của danh sách đầu tiên và giá trị đầu tiên của danh sách thứ hai
Phần tử thứ hai của đối tượng zip là giá trị thứ hai của danh sách đầu tiên và giá trị thứ hai của danh sách thứ hai. Và như thế
Sau đó, bạn có thể sử dụng hàm tạo từ điển để tạo từ điển. Sau đó, phương thức kết xuất để tuần tự hóa từ điển thành JSON
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
7
Alice
31
Kate
girl
4
John
boy
2
Bob
35
Christine
25
Ada
girl
1
6Phương pháp thứ hai là phương pháp đẹp hơn, nhưng hãy sử dụng phương pháp nào phù hợp với bạn
Để tuần tự hóa và giải tuần tự hóa các đối tượng JSON từ một tệp, bạn có thể sử dụng các phương thức kết xuất và tải. Chúng hoạt động giống như các phương thức kết xuất và tải