Hướng dẫn python serialize object to json - python tuần tự hóa đối tượng thành json
Overview:
Cấu trúc của chuỗi JSON:
Mã hóa các đối tượng Python trong JSON: Show
Tuần tự hóa bất kỳ đối tượng Python nào vào chuỗi JSON:
Ví dụ1: Chuyển đổi các đối tượng Python đơn giản thành chuỗi JSONNhập JSON # Một từ điển của số cuộn so với tên sinh viên StudentDict = {1: "John Napier", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 2: "Leonhard Euler", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3: "Scarlett O'Hara", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4: "Henry Ford"} JSonstring & nbsp; = json.dumps (StudentDict) # Một từ điển Python dưới dạng chuỗi JSON print(jsonString) # Một danh sách là json RepDigits = [11,22,33,44] JSonstring & nbsp; = json.dumps (Repdigits) # Danh sách Python dưới dạng chuỗi JSON print(jsonString) # In không dưới dạng json Tham chiếu1 = Không có JSonstring & nbsp; = json.dumps (tham chiếu1) print(jsonString) # In đúng dưới dạng json còn sống = true JSonstring & nbsp; = json.dumps (còn sống) print(jsonString) Output:{"1": "John Napier", "2": "LeonHard Euler", "3": "Scarlett O'Hara", "4": "Henry Ford"} [11, 22, 33, 44] null true Ví dụ2: Chuyển đổi các đối tượng Python Custome thành chuỗi JSON bằng cách xuất phát từ json.jsonencoder# Chương trình Python mẫu để tuần tự hóa một thể hiện của lớp Python tùy chỉnh dưới dạng chuỗi JSON từ JSON Nhập JsonEncoder Nhập JSON # Một từ điển của số cuộn so với tên sinh viên StudentDict = {1: "John Napier", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 2: "Leonhard Euler", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3: "Scarlett O'Hara", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4: "Henry Ford"} JSonstring & nbsp; = json.dumps (StudentDict) # Một từ điển Python dưới dạng chuỗi JSON # Một danh sách là json RepDigits = [11,22,33,44] JSonstring & nbsp; = json.dumps (Repdigits) # Danh sách Python dưới dạng chuỗi JSON & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 2: "Leonhard Euler", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3: "Scarlett O'Hara", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 2: "Leonhard Euler", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3: "Scarlett O'Hara", # Đối tượng là JSON lớp MobilePhoneencoder (JsonEncoder): & nbsp; & nbsp; & nbsp; def mặc định (tự, đối tượng): & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Nếu isinstance (đối tượng, mobilephone): & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Trả về đối tượng .__ Dict__ & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; khác: & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Gọi thực hiện lớp cơ sở chăm sóc & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Tăng các ngoại lệ cho các loại không được hỗ trợ & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; trả về json.jsonencoder.default (self, object) # Tạo một đối tượng điện thoại di động & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Liên hệ = {"xxx-xxx-xxxx": "Joe", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Zzz-zzz-zzzz": "ane", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "AAA-AAA-AAAA": "Rod", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; } Ứng dụng & nbsp; & nbsp; & nbsp; & nbsp; = ["Facebook", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "LinkedIn", & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Twitter"] mymobile & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; = MobilePhone (Danh bạ, Ứng dụng) # Sử dụng MobilePhoneencoder để giải mã một đối tượng MobilePhone JSonstring & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; = MobilePhoneEncoder (). Mã hóa (MyMobile) print(jsonString) # Giải mã một loại không được hỗ trợ thành JSON JSonstring1 & nbsp; & nbsp; & nbsp; & nbsp; = MobilePhoneencoder (). Encode (class_no_jsonserialization ()) # Sẽ tăng một ngoại lệ print(jsonString1) Output:{"liên hệ": {"xxx-xxx-xxxx": "joe", "yyy-yyy-yyyy": "joe", "zzz-z "Rod"}, "Ứng dụng": ["Facebook", "LinkedIn", "Twitter"]} Traceback (cuộc gọi gần đây nhất cuối cùng): & nbsp; Tệp "JsOnex1.py", dòng 51, trong & nbsp; & nbsp; & nbsp; JSonstring1 & nbsp; & nbsp; & nbsp; & nbsp; = MobilePhoneencoder (). Encode (class_no_jsonserialization ()) & nbsp; Tệp "/l Library & nbsp; & nbsp; & nbsp; Chunks = self.iterencode (o, _one_shot = true) & nbsp; Tệp "/l Library & nbsp; & nbsp; & nbsp; Trả về _IterenCode (O, 0) & nbsp; Tệp "JsOnex1.py", dòng 32, mặc định & nbsp; & nbsp; & nbsp; trả về json.jsonencoder.default (self, object) & nbsp; Tệp "/l Library & nbsp; & nbsp; & nbsp; O .__ Lớp __.__ Tên__) TypeError: đối tượng của loại 'class_no_jsonsonserialization' không phải là serializable json Làm thế nào để bạn tuần tự hóa một đối tượng trong Python?Sử dụng thư viện Pickle của Python sau đó, để tuần tự hóa một đối tượng Python như từ điển và lưu trữ luồng byte làm tệp, chúng ta có thể sử dụng phương thức Dump () của Pickle. test_dict = {"xin chào": "thế giới!"} luồng byte đại diện cho test_dict hiện được lưu trữ trong tệp thử nghiệm. Pickle ”!use pickle's dump() method. test_dict = {"Hello": "World!"} The byte stream representing test_dict is now stored in the file “ test. pickle ”!
Làm thế nào để bạn tuần tự hóa và giải phóng một đối tượng JSON trong Python?Để tuần tự hóa và giải phóng các đối tượng JSON Python, __dict__.Có __dict__ trên bất kỳ đối tượng Python nào, là một từ điển được sử dụng để lưu trữ các thuộc tính (có thể ghi) của một đối tượng.Chúng tôi có thể sử dụng điều đó để làm việc với JSON, và điều đó hoạt động tốt.Python “__dict__” can be used. There is the __dict__ on any Python object, which is a dictionary used to store an object's (writable) attributes. We can use that for working with JSON, and that works well.
Làm cách nào để lưu một đối tượng Python cho JSON?Để đổ một đối tượng Python vào Chuỗi JSON, bạn có thể sử dụng phương thức json.dumps () của mô-đun JSON tích hợp.JSON.Dump () Phương thức được ghép nối (không có "S") chuyển đổi đối tượng Python thành chuỗi JSON và ghi nó vào một tệp.use the json. dumps() method of the built-in json module. The json. dump() paired method (without the "s") converts the Python object to JSON string and writes it to a file.
Python sê -ri JSON là gì?Xét nghiệm hóa là quá trình chuyển đổi các đối tượng của các loại dữ liệu phức tạp (các lớp được xác định tùy chỉnh, người lập bản đồ liên quan đến đối tượng, DateTime, v.v.) thành các loại dữ liệu gốc để sau đó chúng có thể dễ dàng chuyển đổi thành ký hiệu JSON. |