Làm cách nào để định dạng dữ liệu JSON trong Python?
Trong hướng dẫn này, chúng ta sẽ xem cách đọc và ghi dữ liệu JSON từ và tới một tệp trong Python, sử dụng mô-đun 8 Show
JSON (Ký hiệu đối tượng JavaScript) là một định dạng cực kỳ phổ biến để tuần tự hóa dữ liệu, với mức độ nhẹ và dễ áp dụng của nó - đồng thời cũng khá thân thiện với con người. Đáng chú ý nhất, nó được sử dụng rộng rãi trong thế giới phát triển web, nơi bạn có thể gặp các đối tượng tuần tự hóa JSON được gửi từ API REST, cấu hình ứng dụng hoặc thậm chí lưu trữ dữ liệu đơn giản Với mức độ phổ biến của nó, việc đọc và phân tích cú pháp các tệp JSON (hoặc chuỗi) là khá phổ biến và việc viết JSON để gửi đi cũng phổ biến không kém. Trong hướng dẫn này - chúng ta sẽ xem cách tận dụng mô-đun 8 để đọc và viết JSON trong PythonViết JSON vào một tệp bằng Python với json. bãi () và json. bãi ()Để viết nội dung JSON vào một tệp bằng Python - chúng ta có thể sử dụng 0 và 1. Đây là những phương pháp riêng biệt và đạt được kết quả khác nhau
Ghi chú. Chữ "s" trong "dumps" thực ra là viết tắt của "dump string" Định dạng tự nhiên của JSON tương tự như bản đồ trong khoa học máy tính - bản đồ gồm các cặp 4. Trong Python, từ điển là một triển khai bản đồ, vì vậy, đương nhiên chúng ta sẽ có thể biểu diễn JSON một cách trung thực thông qua một 5. Một từ điển có thể chứa các từ điển, mảng, booleans lồng nhau khác hoặc các kiểu nguyên thủy khác như số nguyên và chuỗi::: Ghi chú. Gói json tích hợp cung cấp một số phương thức tiện lợi cho phép chúng tôi chuyển đổi giữa JSON và từ điển ::: Như đã nói, hãy nhập mô-đun 8, xác định từ điển với một số dữ liệu và sau đó chuyển đổi nó thành JSON trước khi lưu vào tệpKết quả này trong
Ở đây, chúng ta có một từ điển đơn giản với một vài 7, mỗi cái có một 8, 9 và 0. Hàm 1 của mô-đun 8 đưa một từ điển vào nội dung JSON và trả về một chuỗi JSONSau khi được tuần tự hóa, bạn có thể quyết định gửi nó đến một dịch vụ khác sẽ giải tuần tự hóa nó, hoặc, ví dụ, lưu trữ nó. Để lưu trữ chuỗi JSON này vào một tệp, chúng tôi chỉ cần mở một tệp ở chế độ ghi và ghi nó xuống. Nếu bạn không muốn trích xuất dữ liệu thành một biến độc lập để sử dụng sau này mà chỉ muốn kết xuất dữ liệu đó vào một tệp, bạn có thể bỏ qua hàm 1 và sử dụng ____13_______4 instadBất kỳ đối tượng giống tệp nào cũng có thể được chuyển đến đối số thứ hai của hàm 4, ngay cả khi đó không phải là tệp thực. Một ví dụ điển hình về điều này sẽ là một ổ cắm, có thể được mở, đóng và ghi vào giống như một tệpĐọc JSON từ một tệp bằng Python với json. tải () và json. tải ()Ánh xạ giữa nội dung từ điển và chuỗi JSON rất đơn giản, vì vậy thật dễ dàng để chuyển đổi giữa hai. Logic tương tự như với 4 và 1 được áp dụng cho 8 và 9. Giống như 1, hàm 1 chấp nhận một chuỗi JSON và chuyển đổi nó thành một từ điển, trong khi 2 cho phép bạn tải vào một tệp
Kết quả này trong
Ngoài ra, hãy đọc một chuỗi JSON vào từ điển
Điều này cũng dẫn đến
Cái này đặc biệt hữu ích để phân tích các phản hồi API REST gửi JSON. Dữ liệu này đến với bạn dưới dạng một chuỗi, sau đó bạn có thể chuyển trực tiếp tới 1 và bạn có một từ điển dễ quản lý hơn nhiều để làm việc vớiSắp xếp, in đẹp, dấu tách và mã hóaKhi tuần tự hóa dữ liệu của bạn thành JSON bằng Python, định dạng tiêu chuẩn nhằm giảm thiểu bộ nhớ cần thiết để truyền tin nhắn không dễ đọc do khoảng trắng bị loại bỏ. Mặc dù đây là hành vi lý tưởng để truyền dữ liệu (máy tính không quan tâm đến khả năng đọc mà quan tâm đến kích thước) - đôi khi bạn có thể cần thực hiện những thay đổi nhỏ, chẳng hạn như thêm khoảng trắng để con người có thể đọc được Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó Ghi chú. 0/_______2_______1 và 2/ 1 đều cung cấp một vài tùy chọn định dạngJSON in đẹp bằng PythonLàm cho JSON có thể đọc được bằng con người (hay còn gọi là "in đẹp") dễ dàng như chuyển một giá trị số nguyên cho tham số 8
Điều này tạo ra một vết lõm 4 dấu cách trên mỗi khối logic mới
Một tùy chọn khác là sử dụng công cụ dòng lệnh - 9. Với nó, bạn có thể in JSON đẹp mắt trong dòng lệnh mà không ảnh hưởng đến chuỗi được truyền và chỉ ảnh hưởng đến cách nó được hiển thị trên ống đầu ra tiêu chuẩn
Sắp xếp các đối tượng JSON theo khóaTheo thuật ngữ JSON
Thứ tự khóa không được đảm bảo, nhưng có thể bạn cần thực thi thứ tự khóa. Để đạt được thứ tự, bạn có thể chuyển 0 cho tùy chọn 1 khi sử dụng 0 hoặc 1
Kết quả này trong
Văn bản và mã hóa ASCIITheo mặc định, 0 và 1 sẽ đảm bảo rằng văn bản trong từ điển Python đã cho được mã hóa ASCII. Nếu có các ký tự không phải ASCII thì chúng sẽ tự động được thoát, như minh họa trong ví dụ sau 0 1Điều này không phải lúc nào cũng được chấp nhận và trong nhiều trường hợp, bạn có thể muốn giữ nguyên các ký tự Unicode của mình. Để thực hiện việc này, hãy đặt tùy chọn 6 thành 7 2 3Bỏ qua các loại dữ liệu khóa tùy chỉnhNếu một khóa trong từ điển của bạn thuộc loại không nguyên thủy ( 8, 9, 0, 1 hoặc 2), một số 3 sẽ xuất hiện khi bạn cố gắng kết xuất nội dung JSON vào một tệp. Bạn có thể bỏ qua các khóa này thông qua đối số 4 4Kích hoạt và vô hiệu hóa kiểm tra thông tưNếu một thuộc tính của đối tượng JSON tự tham chiếu hoặc một đối tượng khác tham chiếu ngược lại đối tượng gốc - một JSON đệ quy vô hạn được tạo. Đệ quy vô hạn thường dẫn đến việc bộ nhớ được cấp phát nhanh chóng cho đến khi thiết bị hết bộ nhớ và trong trường hợp kết xuất JSON, một số 5 được nâng lên và quá trình kết xuất bị tạm dừngĐiều này được quy định bởi cờ 6, mặc định là 0 và ngăn ngừa các sự cố có thể xảy ra khi viết các phụ thuộc vòng tròn. Để tắt nó, bạn có thể đặt nó thành `False 5Tuy nhiên, xin lưu ý rằng điều này rất không được khuyến khích Kích hoạt và vô hiệu hóa NaNCác giá trị NaN, chẳng hạn như 8, 9 và 0 có thể len lỏi vào các đối tượng mà bạn muốn tuần tự hóa hoặc giải tuần tự hóa. Tiêu chuẩn JSON không cho phép các giá trị NaN, nhưng chúng vẫn mang giá trị logic mà bạn có thể muốn truyền tải trong một tin nhắn. Mặt khác - bạn có thể muốn thực thi rằng các giá trị NaN không được truyền đi và thay vào đó đưa ra một ngoại lệ. Cờ 1 được đặt thành 0 theo mặc định và cho phép bạn tuần tự hóa và giải tuần tự hóa các giá trị NaN, thay thế chúng bằng các giá trị JavaScript tương đương ( 3, 4 và 5)Thay vào đó, nếu bạn đặt cờ thành 7 - bạn sẽ chuyển sang định dạng được chuẩn hóa nghiêm ngặt của JSON, định dạng này sẽ tăng 7 nếu đối tượng của bạn chứa các thuộc tính có các giá trị này 6Thay đổi dấu phân cáchTrong JSON, các khóa được phân tách khỏi các giá trị bằng dấu hai chấm ( 8) và các mục được phân tách với nhau bằng dấu phẩy ( 9) 7Dấu phân cách mặc định để đọc và viết JSON trong Python là 0 với khoảng trắng sau dấu phẩy và dấu hai chấm. Bạn có thể thay đổi những điều này để bỏ qua các khoảng trắng và do đó làm cho JSON nhỏ gọn hơn một chút hoặc thay đổi hoàn toàn các dấu phân cách bằng các ký tự đặc biệt khác để thể hiện khácCác vấn đề về khả năng tương thích với Python 2Nếu bạn đang sử dụng phiên bản Python cũ hơn (2. x) - bạn có thể gặp phải 3 khi đang cố gắng kết xuất nội dung JSON vào một tệp. Cụ thể, nếu nội dung chứa một ký tự không phải ASCII, thì ____37_______3 sẽ được nâng lên, ngay cả khi bạn chuyển đối số mã hóa, khi sử dụng phương thức ____2_______0Nếu bạn gặp trường hợp cạnh này, trường hợp này đã được sửa trong các phiên bản Python tiếp theo - thay vào đó, hãy thử sử dụng 1 và ghi nội dung chuỗi vào tệp thay vì truyền trực tiếp nội dung vào tệpPhần kết luậnTrong hướng dẫn này, chúng tôi đã giới thiệu cho bạn các phương thức 0, 1, 2 và 1, giúp tuần tự hóa và giải tuần tự hóa các chuỗi JSONSau đó, chúng tôi đã xem xét cách bạn có thể sắp xếp các đối tượng JSON, in đẹp chúng, thay đổi mã hóa, bỏ qua các loại dữ liệu khóa tùy chỉnh, bật hoặc tắt kiểm tra vòng tròn và liệu NaN có được phép hay không, cũng như cách thay đổi dấu phân cách cho Với việc JSON là một trong những cách phổ biến nhất để tuần tự hóa dữ liệu có cấu trúc, bạn có thể sẽ phải tương tác với nó khá thường xuyên, đặc biệt là khi làm việc trên các ứng dụng web. Mô-đun 8 của Python là một cách tuyệt vời để bắt đầu, mặc dù bạn có thể thấy rằng Simplejson là một giải pháp thay thế tuyệt vời khác ít nghiêm ngặt hơn về cú pháp JSON
Làm cách nào để định dạng dữ liệu JSON trong Python?JSON định dạng Python . ❮ Thuật ngữ Python Thí dụ. Sử dụng tham số thụt lề để xác định số lượng thụt lề. json. bãi chứa (x, thụt lề = 4). Ví dụ. Sử dụng tham số dấu phân cách để thay đổi dấu phân cách mặc định. . Trang liên quan. Hướng dẫn JSON về Python JSON Phân tích cú pháp JSON Chuyển đổi thành JSON Sắp xếp JSON ❮ Thuật ngữ Python Làm cách nào để định dạng cấu trúc JSON Python?Trong mô-đun json, có một số phương thức như dump() và dumps() để chuyển đối tượng Python thành chuỗi JSON . Phương thức kết xuất () có hai đối số, đối số đầu tiên là đối tượng và đối số thứ hai là đối tượng tệp. Phương thức này tuần tự hóa đối tượng dưới dạng luồng được định dạng JSON thành tệp đối tượng.
Làm cách nào để tạo tệp JSON đẹp bằng Python?Cú pháp của json. Đầu tiên, sử dụng json. phương thức loads() để chuyển đổi Chuỗi JSON thành đối tượng Python . Để chuyển đổi đối tượng này thành một chuỗi JSON in đẹp, json. phương thức dumps() được sử dụng.
Làm cách nào để xem định dạng JSON trong Python?Đọc từ JSON
. Python có một gói tích hợp gọi là json, có thể được sử dụng để làm việc với dữ liệu JSON. Nó được thực hiện bằng cách sử dụng mô-đun JSON, mô-đun này cung cấp cho chúng ta rất nhiều phương thức, trong đó các phương thức loading() và load() sẽ giúp chúng ta đọc tệp JSON. |