Bài viết này trình bày cách sử dụng các phương thức
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 của Python để đọc dữ liệu JSON từ tệp và Chuỗi. Sử dụng phương pháp json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9, bạn có thể biến dữ liệu được định dạng/mã hóa JSON thành Các loại Python, quá trình này được gọi là giải mã JSON. Mô-đun json tích hợp trong Python cung cấp hai phương thức sau để giải mã dữ liệu JSONĐọc thêm
- Giải Bài tập Python JSON để thực hành các kỹ năng Python JSON
Để phân tích cú pháp JSON từ URL hoặc tệp, hãy sử dụng
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8. Đối với chuỗi phân tích cú pháp có nội dung JSON, hãy sử dụng json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9Cú pháp của json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
Chúng ta có thể thực hiện nhiều thao tác phân tích cú pháp JSON bằng phương pháp
{ "name": "jane doe", "salary": 9000, "skills": [ "Raspberry pi", "Machine Learning", "Web Development" ], "email": "JaneDoe@pynative.com", "projects": [ "Python Data Mining", "Python Data Science" ] }6 và
{ "name": "jane doe", "salary": 9000, "skills": [ "Raspberry pi", "Machine Learning", "Web Development" ], "email": "JaneDoe@pynative.com", "projects": [ "Python Data Mining", "Python Data Science" ] }7. Đầu tiên, hãy hiểu cú pháp và đối số của nó, sau đó chúng ta chuyển sang cách sử dụng từng cái một
Cú pháp của ________ 08
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
1Cú pháp của
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
Tất cả các đối số có cùng ý nghĩa trong cả hai phương pháp
Tham số được sử dụng
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 được sử dụng để đọc tài liệu JSON từ tệp và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 được sử dụng để chuyển đổi tài liệu Chuỗi JSON thành từ điển Python- Con trỏ tệp
62 được sử dụng để đọc tệp văn bản, tệp nhị phân hoặc tệp JSON chứa tài liệu JSONjson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
63 là hàm tùy chọn sẽ được gọi với kết quả của bất kỳ đối tượng nào được giải mã theo nghĩa đen. Mô-đun json tích hợp sẵn của Python chỉ có thể xử lý các loại nguyên thủy có tương đương JSON trực tiếp [e. g. , từ điển, danh sách, chuỗi, Số, Không có, v.v. ]. Nhưng khi bạn muốn chuyển đổi dữ liệu JSON thành một loại Python tùy chỉnh, chúng ta cần triển khai bộ giải mã tùy chỉnh và chuyển nó dưới dạng một đối tượngjson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
64 sang một phương thứcjson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
65 để chúng ta có thể nhận lại một loại Python tùy chỉnh thay vì một từ điểnjson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
66 là một hàm tùy chọn sẽ được gọi với kết quả của bất kỳ đối tượng theo nghĩa đen nào được giải mã bằng một danh sách các cặp được sắp xếp theo thứ tự. Giá trị trả về củajson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
67 sẽ được sử dụng thay cho từ điển Python. Tính năng này cũng có thể được sử dụng để triển khai bộ giải mã tùy chỉnh. Nếujson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
64 cũng được xác định, thìjson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
67 sẽ được ưu tiênjson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
40 là tham số tùy chọn, nhưng nếu được chỉ định, sẽ được gọi với chuỗi của mọi số nguyên và số float JSON được giải mã. Theo mặc định, điều này tương đương vớijson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
41json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
42 nếu được chỉ định, nó sẽ được gọi với chuỗi của mọi JSON int sẽ được giải mã. Theo mặc định, điều này tương đương vớijson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
43json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
Chúng ta sẽ xem chi tiết việc sử dụng tất cả các tham số này
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 để đọc dữ liệu JSON từ một tệp và chuyển đổi nó thành từ điển
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
Sử dụng phương thức
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8, chúng ta có thể đọc dữ liệu JSON từ văn bản, JSON hoặc tệp nhị phân. Phương thức json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 trả về dữ liệu dưới dạng từ điển Python. Sau đó, chúng tôi sử dụng từ điển này để truy cập và thao tác dữ liệu trong ứng dụng hoặc hệ thống của chúng tôiÁnh xạ giữa các thực thể JSON và Python trong khi giải mã
Vui lòng tham khảo bảng chuyển đổi sau, được sử dụng bởi phương pháp
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 cho các bản dịch trong giải mãJSONPythonobjectdictarrayliststringstrnumber [int]intnumber [real]floattrueTruefalseFalsenullNonePython Bảng chuyển đổi JSONBây giờ, hãy xem ví dụ. Đối với ví dụ này, tôi đang đọc “nhà phát triển. json” hiện trên ổ cứng của tôi. Tệp này chứa dữ liệu JSON sau
________số 8
Thí dụ
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
6đầu ra
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
4Truy cập dữ liệu JSON trực tiếp bằng tên khóa
Sử dụng đoạn mã sau Nếu bạn muốn truy cập trực tiếp vào khóa JSON thay vì lặp lại toàn bộ JSON từ một tệp
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
6đầu ra
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
7Bạn có thể đọc dữ liệu JSON từ văn bản, json hoặc tệp nhị phân theo cách tương tự đã đề cập ở trên
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 để chuyển đổi chuỗi JSON thành từ điển
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
Đôi khi chúng tôi nhận được phản hồi JSON ở định dạng chuỗi. Vì vậy, để sử dụng nó trong ứng dụng của mình, chúng ta cần chuyển đổi chuỗi JSON thành từ điển Python. Sử dụng phương thức
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9, chúng ta có thể giải tuần tự hóa thể hiện String, byte hoặc bytearray gốc chứa tài liệu JSON thành từ điển Python. Chúng ta có thể tham khảo bảng chuyển đổi được đề cập ở đầu bài viếtjson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
0đầu ra
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
1Phân tích cú pháp và truy xuất các khóa-giá trị mảng JSON lồng nhau
Giả sử rằng bạn đã nhận được phản hồi JSON giống như thế này
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
2Ví dụ: Bạn muốn truy xuất tên dự án từ mảng JSON thông tin của nhà phát triển để biết họ đang làm việc cho dự án nào. Bây giờ chúng ta hãy xem cách đọc các khóa-giá trị mảng JSON lồng nhau
Trong ví dụ này, chúng tôi đang sử dụng mảng JSON thông tin nhà phát triển, có thông tin dự án và trải nghiệm dưới dạng dữ liệu JSON lồng nhau
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
0đầu ra
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
1Tải JSON vào OrderedDict
OrderedDict có thể được sử dụng làm đầu vào cho JSON. Ý tôi là, khi bạn đổ JSON vào một tệp hoặc chuỗi, chúng ta có thể chuyển OrderedDict cho nó.
Tuy nhiên, khi chúng tôi muốn duy trì trật tự, chúng tôi tải dữ liệu JSON trở lại OrderedDict để chúng tôi có thể giữ thứ tự của các khóa trong tệp.
Như chúng ta đã thảo luận trong bài viết, tham số
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
66 của phương thức json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 là một hàm tùy chọn sẽ được gọi với kết quả là bất kỳ đối tượng theo nghĩa đen nào được giải mã bằng danh sách các cặp được sắp xếp theo thứ tựHãy xem ví dụ ngay bây giờ
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
2đầu ra
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
3Cách sử dụng json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
40 và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
42 kwarg của json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
Như tôi đã nói với
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
40 và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
42, cả hai đều là tham số tùy chọn, nhưng nếu được chỉ định, sẽ được gọi cùng với chuỗi của mọi số thực và số nguyên JSON sẽ được giải mã. Theo mặc định, điều này tương đương với json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
41 và json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
43Giả sử tài liệu JSON chứa nhiều giá trị float và bạn muốn làm tròn tất cả các giá trị float thành hai dấu thập phân. Trong trường hợp này, chúng ta cần xác định một hàm tùy chỉnh thực hiện bất kỳ phép làm tròn nào bạn muốn. Chúng ta có thể chuyển một chức năng như vậy cho
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
40 kwargNgoài ra, nếu bạn muốn thực hiện bất kỳ thao tác nào trên các giá trị số nguyên, chúng ta có thể viết một hàm tùy chỉnh và chuyển hàm đó tới
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
42 kwarg. Ví dụ: bạn đã nhận được số ngày nghỉ phép trong tài liệu JSON và bạn muốn tính tiền lương để khấu trừThí dụ
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
4đầu ra
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
5Triển khai bộ giải mã JSON tùy chỉnh bằng cách sử dụng json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
Mô-đun json tích hợp của Python chỉ có thể xử lý các kiểu nguyên thủy Python có tương đương JSON trực tiếp [e. g. , từ điển, danh sách, chuỗi, số, Không có, v.v. ]
Khi bạn thực thi một phương thức
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
73 hoặc json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9, nó sẽ trả về một từ điển Python. Nếu bạn muốn chuyển đổi JSON thành một đối tượng Python tùy chỉnh thì chúng ta có thể viết một bộ giải mã JSON tùy chỉnh và chuyển nó cho phương thức json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 để chúng ta có thể nhận một đối tượng Lớp tùy chỉnh thay vì một từ điểnHãy xem cách sử dụng bộ giải mã JSON trong phương thức tải. Trong ví dụ này, chúng ta sẽ xem cách sử dụng tham số
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
63 của một phương thức tảijson.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
6đầu ra
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
7Cũng đọc
- Kiểm tra xem một khóa có tồn tại trong JSON hay không và Lặp lại mảng JSON
- Python Phân tích cú pháp nhiều đối tượng JSON từ tệp
Vậy bạn nghĩ như thế nào?
Tôi muốn nghe từ bạn. Bạn nghĩ gì về bài viết này? . Dù bằng cách nào, hãy cho tôi biết bằng cách để lại nhận xét bên dưới
Ngoài ra, hãy thử giải Bài tập JSON của Python để hiểu rõ hơn về Làm việc với Dữ liệu JSON trong Python