JSON [Ký hiệu đối tượng JavaScript] là định dạng dữ liệu phổ biến được sử dụng để lưu trữ dữ liệu theo cách có cấu trúc. Bằng cách chuyển đổi một chuỗi thành đối tượng JSON, bạn có thể truy cập và sửa đổi dữ liệu trong đối tượng, cũng như sử dụng đối tượng trong bất kỳ quy trình hoặc chức năng nào liên quan đến JSON
Bây giờ hãy xem cách thực hiện chuyển đổi
Chuỗi Python thành json
Để chuyển đổi chuỗi thành json trong Python, hãy sử dụng lệnh json. chức năng tải []. json. loading[] là một hàm tích hợp chấp nhận một chuỗi json hợp lệ và trả về một từ điển để truy cập tất cả các phần tử
Quá trình chuyển đổi dữ liệu json thành các đối tượng Python được gọi là khử lưu huỳnh
json. hàm loading[] phân tích cú pháp chuỗi JSON hợp lệ thành từ điển
Để sử dụng json. loading[], nhập gói json do Python cung cấp ở đầu tệp
# app.py import json json_string = ''' { "students": [ { "name": "Millie Brown", "active": true, "rollno": 11 }, { "name": "Sadie Sink", "active": true, "rollno": 10 } ] } ''' print[json_string] print["The type of object is: ", type[json_string]] stud_obj = json.loads[json_string] print[stud_obj] print["The type of object is: ", type[stud_obj]] json_obj = json.dumps[stud_obj] print[json_obj] print["The type of object is: ", type[json_obj]]
đầu ra
{ "students": [ { "name": "Millie Brown", "active": true, "rollno": 11 }, { "name": "Sadie Sink", "active": true, "rollno": 10 } ] } The type of object is: {'students': [{'name': 'Millie Brown', 'active': True, 'rollno': 11}, {'name': 'Sadie Sink', 'active': True, 'rollno': 10}]} The type of object is: {"students": [{"name": "Millie Brown", "active": true, "rollno": 11}, {"name": "Sadie Sink", "active": true, "rollno": 10}]} The type of object is:
Trong ví dụ này, trước tiên chúng tôi chuyển đổi chuỗi json thành đối tượng từ điển Python bằng cách sử dụng json. loading[] và sau đó chuyển đổi từ điển thành chuỗi bằng cách sử dụng json. phương thức bãi []
Chuyển đổi dữ liệu từ JSON sang các đối tượng Python
- đối tượng => chính tả
- mảng => danh sách
- chuỗi => str
- số [int] => int
- số [thực] => float
- đúng => Đúng
- sai => sai
- null => Không có
Sự khác biệt giữa json. tải [] và json. tải []
Sự khác biệt chính giữa json. tải [] và json. hàm loading[] mà json. hàm load[] đọc tài liệu JSON từ một tệp và json. hàm loading[] được sử dụng để chuyển đổi tài liệu Chuỗi JSON thành từ điển Python
json. hàm load[] có thể giải tuần tự hóa một tệp. json. hàm loading[] giải tuần tự hóa một chuỗi
Phần kết luận
Để chuyển đổi một chuỗi thành dữ liệu JSON trong Python, hãy sử dụng hàm json. phương thức loading[] đi kèm với gói json tích hợp
Xem thêm
Chuỗi Python thành int
Chuỗi Python để liệt kê
Chuỗi Python thành mảng
Chuỗi Python thành datetime
Bài viết trước Nhận yêu cầu Python. Hướng dẫn đầy đủ
Bài viết tiếp theo Cách sắp xếp danh sách theo thứ tự abc trong Python
kranal
https. //appdividend. com/
Krunal Lathiya là Kỹ sư phần mềm với hơn tám năm kinh nghiệm. Anh ấy đã phát triển một nền tảng vững chắc về các nguyên tắc khoa học máy tính và niềm đam mê giải quyết vấn đề. Ngoài ra, Krunal có kiến thức tuyệt vời về Khoa học dữ liệu và Học máy, đồng thời là chuyên gia về Ngôn ngữ Python. Krunal có kinh nghiệm với nhiều ngôn ngữ lập trình và công nghệ khác nhau, bao gồm PHP, R, Golang và JavaScript. Anh ấy cảm thấy thoải mái khi làm việc trong lĩnh vực phát triển front-end và back-end
JSON [Ký hiệu đối tượng JavaScript] là một định dạng văn bản không phụ thuộc vào ngôn ngữ và thường được sử dụng để trao đổi dữ liệu giữa các ứng dụng khác nhau. Một ví dụ điển hình là các phản hồi từ API thường ở định dạng JSON, do đó backend và frontend có thể tự do trao đổi dữ liệu mà không cần biết chi tiết kỹ thuật của nhau. Trong bài đăng này, chúng tôi sẽ giới thiệu các trường hợp sử dụng phổ biến của JSON trong Python, một ngôn ngữ phổ biến để phát triển phụ trợ và kỹ thuật/phân tích dữ liệu
JSON và từ điển
Đầu tiên, chúng ta nên biết rằng JSON là một định dạng chuỗi. Do đó, nó khác với kiểu dữ liệu từ điển trong Python. Chuỗi JSON có thể được phân tích thành dữ liệu tương ứng trong bất kỳ ngôn ngữ lập trình hiện đại nào. Thông thường, một chuỗi JSON có thể được phân tích thành hai loại dữ liệu là đối tượng và mảng. Một đối tượng là một tập hợp các cặp khóa/giá trị không có thứ tự và tương ứng với kiểu dữ liệu từ điển trong Python, trong khi một mảng là một tập hợp các giá trị có thứ tự và tương ứng với kiểu dữ liệu danh sách trong Python
Chuyển đổi giữa chuỗi JSON và dữ liệu
Như đã đề cập ở trên, một chuỗi JSON có thể được phân tích thành một đối tượng hoặc một mảng và ngược lại, trong tất cả các ngôn ngữ lập trình hiện đại. Trong Python, thư viện json
có thể được sử dụng cho kiểu chuyển đổi này. Chúng tôi sử dụng hàm loads
để chuyển đổi chuỗi JSON thành một đối tượng hoặc một mảng và sử dụng hàm dumps
để thực hiện chuyển đổi ngược lại. Lưu ý rằng s
trong loads
và dumps
là viết tắt của chuỗi có nghĩa là chúng hoạt động trên chuỗi JSON. Nếu s
không được chỉ định, thì các hàm sẽ hoạt động với các tệp JSON, sẽ được giới thiệu sau
Đoạn mã dưới đây minh họa các chuyển đổi phổ biến giữa chuỗi JSON và đối tượng/mảng
Thật thú vị, khi chúng tôi kết xuất mảng trở lại JSON, kết quả sẽ khác với kết quả ban đầu. Nếu bạn kiểm tra kỹ, bạn sẽ thấy một sự khác biệt tinh tế. Khi chúng tôi không chỉ định dấu phân cách, khoảng trắng sẽ được thêm vào sau dấu phân cách mục theo mặc định là dấu phẩy. Chúng tôi có thể chỉ định một dấu phân cách tùy chỉnh để làm cho kết quả giống nhau. Lưu ý rằng chúng tôi cần chỉ định cả dấu tách mục và dấu tách khóa ngay cả khi chúng tôi chỉ muốn thay đổi một trong số chúng
Trên thực tế, tham số separators
được sử dụng phổ biến hơn để tùy chỉnh biểu diễn của đối tượng JSON. Chúng ta có thể sử dụng các dấu tách khác nhau để làm cho chuỗi kết xuất trở nên nhỏ gọn hơn hoặc dễ đọc hơn với con người
Tham số
{ "students": [ { "name": "Millie Brown", "active": true, "rollno": 11 }, { "name": "Sadie Sink", "active": true, "rollno": 10 } ] } The type of object is: {'students': [{'name': 'Millie Brown', 'active': True, 'rollno': 11}, {'name': 'Sadie Sink', 'active': True, 'rollno': 10}]} The type of object is: {"students": [{"name": "Millie Brown", "active": true, "rollno": 11}, {"name": "Sadie Sink", "active": true, "rollno": 10}]} The type of object is:0 được sử dụng để chèn một số khoảng trắng trước mỗi phím để cải thiện khả năng đọc. Và tham số
{ "students": [ { "name": "Millie Brown", "active": true, "rollno": 11 }, { "name": "Sadie Sink", "active": true, "rollno": 10 } ] } The type of object is: {'students': [{'name': 'Millie Brown', 'active': True, 'rollno': 11}, {'name': 'Sadie Sink', 'active': True, 'rollno': 10}]} The type of object is: {"students": [{"name": "Millie Brown", "active": true, "rollno": 11}, {"name": "Sadie Sink", "active": true, "rollno": 10}]} The type of object is:1 được sử dụng để sắp xếp các khóa theo thứ tự bảng chữ cái
Thêm bộ tuần tự hóa tùy chỉnh cho các giá trị không thể được sắp xếp theo thứ tự
Trong ví dụ trên, tất cả các giá trị của từ điển đích [loads
0] có thể được đánh số thứ tự. Trong thực tế, có thể có một số giá trị không thể đánh số thứ tự, đặc biệt là các loại loads
1 và loads
2/loads
3
Trong trường hợp này, chúng ta cần tạo một chức năng nối tiếp tùy chỉnh và đặt nó thành tham số loads
4
Lưu ý rằng trong bộ nối tiếp tùy chỉnh, chúng tôi sử dụng loads
5 trong chuỗi f để hiển thị biểu diễn của giá trị, điều này có thể hữu ích cho mục đích gỡ lỗi. Nếu bạn bỏ ghi chú một trong các điều kiện của loads
6 và chạy lại lệnh loads
7, bạn sẽ thấy lỗi tương ứng
So sánh sự khác biệt giữa hai JSON
Đôi khi chúng ta cần so sánh sự khác biệt giữa hai đối tượng JSON. Ví dụ: chúng tôi có thể kiểm tra và so sánh lược đồ của một số bảng có thể được xuất dưới dạng JSON và đưa ra một số cảnh báo nếu lược đồ của một số bảng quan trọng bị thay đổi
Thư viện loads
8 có thể được sử dụng để so sánh sự khác biệt giữa hai đối tượng JSON trong Python
Nếu chúng ta muốn kiểm soát cách hiển thị kết quả, chúng ta có thể sử dụng các tham số loads
9, dumps
0 và dumps
1 để tùy chỉnh kết quả
Chúng ta có thể sử dụng trường loads
9 để chỉ định cách hiển thị các giá trị và hành động
Chúng ta có thể sử dụng tham số dumps
3 để tải dữ liệu từ chuỗi JSON và tương tự sử dụng tham số dumps
1 để kết xuất kết quả thành chuỗi JSON, có thể được ghi trực tiếp vào tệp, sẽ sớm được giới thiệu
Đọc và viết JSON
Chúng ta có thể viết một chuỗi JSON vào một tệp bằng hàm dumps
5. Lưu ý rằng không có s
trong tên hàm. Cái có s
[loads
7] là để làm việc với chuỗi chứ không phải tệp. Tệp JSON chỉ là một tệp văn bản thuần túy và phần mở rộng theo mặc định là dumps
9. Hãy viết sự khác biệt giữa hai lược đồ được trả về bởi s
0 vào một tệp có tên s
1
Một tệp có tên s
1 sẽ được tạo và sẽ chứa chuỗi JSON chứa trong biến s
3. Nếu các giá trị của từ điển/danh sách chứa dữ liệu không thể tuần tự hóa, chúng ta cần chỉ định tham số loads
4 với chức năng tuần tự hóa như được trình bày ở đầu bài đăng này
Cuối cùng, chúng ta có thể sử dụng hàm s
5 để tải dữ liệu từ tệp JSON
Trong bài đăng này, những điều cơ bản về JSON và cách sử dụng nó trong Python được giới thiệu với các ví dụ đơn giản. Chúng ta đã học cách đọc và viết các đối tượng JSON, từ một chuỗi hoặc từ một tệp. Ngoài ra, bây giờ chúng ta đã biết cách viết một trình tuần tự hóa tùy chỉnh cho các đối tượng JSON chứa dữ liệu không thể được tuần tự hóa bởi trình tuần tự hóa mặc định. Cuối cùng, chúng ta có thể sử dụng thư viện s
0 để so sánh sự khác biệt giữa hai đối tượng JSON có thể hữu ích cho việc theo dõi dữ liệu