Hướng dẫn how do you serialize and deserialize json in python? - làm thế nào để bạn tuần tự hóa và giải tuần tự hóa json trong python?

Xin chào, Độc giả! Trong bài viết này, chúng tôi sẽ tập trung vào khái niệm tuần tự hóa và giải phóng JSON cho các đối tượng trong Python.Serialization and Deserialization of JSON to objects in Python.

Vì vậy, hãy để chúng tôi bắt đầu !! 🙂

Khi nói đến việc xử lý dữ liệu và API, chúng tôi bắt gặp một từ điển hoặc định dạng dữ liệu JSON. Đôi khi, chúng tôi cần các chức năng cho phép chúng tôi thực hiện sự xen kẽ giữa chúng. Chúng tôi sẽ xem xét một số phương pháp để dữ liệu được tuần tự hóa cũng như khử serialized.

Cũng đọc: Mô -đun Python JSON


Tuần tự hóa dữ liệu JSON trong Python

Tuần tự hóa là quá trình trong đó chúng tôi chuyển đổi loại dữ liệu của dữ liệu thô thành định dạng JSON. Với điều đó, chúng tôi có nghĩa là nói rằng dữ liệu thô thường là một từ điển bây giờ sẽ tuân theo định dạng ký hiệu đối tượng JavaScript.

Đối với cùng, Python cung cấp cho chúng tôi các chức năng dưới đây để dễ dàng đưa dữ liệu của chúng tôi được xây dựng thành JSON,

  1. hàm json.dump ()
  2. hàm json.dumps ()

Hàm json.dump ()

Trong hàm json.dump (), nó chấp nhận dữ liệu thô làm đầu vào, chuyển đổi dữ liệu thành định dạng JSON và sau đó lưu trữ nó thành tệp JSON.

Syntax::

json.dump(data, file-object)

  • Dữ liệu: Dữ liệu thực tế cần được chuyển đổi thành định dạng JSON.
  • Đối tượng tệp: Đây là đối tượng sẽ trỏ đến tệp JSON nơi dữ liệu được chuyển đổi sẽ được lưu trữ. Trong trường hợp tệp không tồn tại, thì một tệp mới được tạo tại vị trí được chỉ bởi đối tượng.

Example::

import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )

Hàm json.dumps ()

Không giống như hàm dump (), hàm json.dumps () không chuyển đổi dữ liệu thô thành định dạng JSON nhưng lưu trữ nó dưới dạng chuỗi thay vì trỏ nó sang đối tượng tệp.

Syntax::

Example::

import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
res = json.dumps(data)
print(res)

Đầu ra -

{"details": {"name": "YZ","subject": "Engineering","City": "Pune"}}


Khử tự động dữ liệu JSON

Đã hiểu về việc giải phóng hóa, bây giờ hãy để Lừa đảo ngược quá trình.

Đó là, với sự giải phóng hóa, chúng ta có thể dễ dàng chuyển đổi dữ liệu JSON thành kiểu dữ liệu mặc định/gốc thường là từ điển.

Đối với cùng một

  1. hàm json.load ()
  2. hàm json.loads ()

Hàm json.load ()

Ở đây, hàm tải () cho phép chúng tôi chuyển đổi dữ liệu JSON thành định dạng từ điển gốc.

Syntax::

Example::

Trong ví dụ này, trước tiên chúng tôi đã tải tệp JSON bằng hàm Open (). Đăng mà chúng tôi chuyển đối tượng giới thiệu tệp JSON cho hàm load () và khử nó thành dạng từ điển.

import json
 
data = open('info.json',)
 
op = json.load(data)
 
print(op)
print("Datatype after de-serialization : " + str(type(op)))

Đầu ra::

{"details": {"name": "YZ","subject": "Engineering","City": "Pune"}}
Datatype after de-serialization : 


Sự kết luận

Bằng cách này, chúng tôi đã đi đến cuối chủ đề này. Hãy bình luận bên dưới, trong trường hợp bạn bắt gặp bất kỳ câu hỏi.

Để biết thêm các bài viết như vậy liên quan đến lập trình Python, hãy theo dõi chúng tôi.

Cho đến lúc đó, học hỏi hạnh phúc! 🙂

Bài đăng này tập trung vào các cách khác nhau để tương tác với JSON với Python bằng JSON:json:

https://docs.python.org/3/library/json.html.

Chúng tôi sẽ xem xét các hạn chế của họ, lỗi thời gian chạy, v.v., với mã mẫu. Chúng tôi bắt đầu từ một từ điển loại cơ bản và cuối cùng đã thảo luận về một giải pháp để làm việc với các đối tượng Python phức tạp.Dictionary and eventually discussed a solution for working with complex Python objects.

Từ điển

Module Python và JSON đang hoạt động rất tốt với từ điển. Sau đây là để tuần tự hóa và giải phóng một con trănjson module is working extremely well with dictionaries. The following is for serializing and deserializing a Python…

Trong video này, bạn sẽ học cách phân hủy dữ liệu JSON vào các đối tượng Python bạn có thể sử dụng trong chương trình của mình.

Mô -đun json hiển thị hai phương pháp để giảm dần JSON

load() sẽ tải dữ liệu JSON từ một đối tượng giống như tệp. Chúng tôi sử dụng phương pháp này khi chúng tôi đọc dữ liệu từ một đối tượng giống như tệp. will load JSON data from a file-like object. We use this method when we’re reading in data from a file-like object.

loads() sẽ tải dữ liệu JSON từ một chuỗi chứa dữ liệu được mã hóa JSON. will load JSON data from a string containing JSON-encoded data.

Trừ khi dữ liệu được mã hóa của bạn là một cái gì đó rất đơn giản, các phương pháp này rất có thể sẽ trả về Python dict hoặc

import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )
0 chứa dữ liệu khử Deserialized của bạn.

Biểu đồ này cho thấy cách dữ liệu JSON được phân rã thành các đối tượng Python

JsonPython
sự vậtDIGN
mảngdanh sách
sợi dâystr
Số (int)int
số (thực)trôi nổi
thậtĐÚNG VẬY
saiSai
vô giá trịKhông có

Tuần tự hóa và giải phóng hóa không phải là hoạt động hoàn toàn nghịch đảo! Điều này có nghĩa là sự khử thuốc có thể không trả lại cho bạn đối tượng chính xác mà bạn đã tuần tự hóa.

Ví dụ, một Python

import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )
1 sẽ được nối tiếp dưới dạng JSON
import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )
2. Khi chúng ta giảm dần
import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )
2, chúng ta sẽ nhận được một Python
import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )
0 chứa dữ liệu trong tuple. Nếu chúng tôi muốn đối tượng
import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )
1 ban đầu của chúng tôi trở lại, chúng tôi cần chuyển danh sách này vào trình khởi tạo cho
import json
 
data= {
    "details": {
        "name": "YZ",
        "subject": "Engineering",
        "City": "Pune"
    }
}
 
with open( "info.json" , "w" ) as x:
    json.dump( data, x )
1.

JSON serialize và deserialize là gì?

JSON là một định dạng mã hóa các đối tượng trong một chuỗi.Tuần tự hóa có nghĩa là để chuyển đổi một đối tượng thành chuỗi đó và việc giải phóng là hoạt động nghịch đảo của nó (chuyển đổi chuỗi -> đối tượng).Serialization means to convert an object into that string, and deserialization is its inverse operation (convert string -> object).

Sê -ri JSON trong Python 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.

Python có đặt JSON serializable không?

Bạn đang ở đây vì khi bạn cố gắng đổ hoặc mã hóa Python được đặt thành JSON, bạn đã nhận được một lỗi, KindError: Object of Type Set không thể nối tiếp JSON.Mô-đun JSON tích hợp của Python chỉ có thể xử lý các loại nguyên thủy Python có tương đương JSON trực tiếp.Object of type set is not JSON serializable . The built-in json module of Python can only handle Python primitives types that have a direct JSON equivalent.