Câu trả lời:
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à khử lưu huỳnh là hoạt động nghịch đảo của nó (chuyển đổi chuỗi -> đối tượng) .
Khi truyền dữ liệu hoặc lưu trữ chúng trong một tệp, dữ liệu được yêu cầu là các chuỗi byte, nhưng các đối tượng phức tạp hiếm khi ở định dạng này. Tuần tự hóa có thể chuyển đổi các đối tượng phức tạp này thành chuỗi byte để sử dụng như vậy. Sau khi các chuỗi byte được truyền đi, người nhận sẽ phải khôi phục đối tượng ban đầu từ chuỗi byte. Điều này được gọi là khử lưu huỳnh.
Nói rằng, bạn có một đối tượng:
{foo: [1, 4, 7, 10], bar: "baz"}
tuần tự hóa thành JSON sẽ chuyển đổi nó thành một chuỗi:
'{"foo":[1,4,7,10],"bar":"baz"}'
có thể được lưu trữ hoặc gửi qua dây đến bất cứ nơi nào. Sau đó, người nhận có thể giải tuần tự chuỗi này để lấy lại đối tượng ban đầu. {foo: [1, 4, 7, 10], bar: "baz"}
.
"{foo: [1, 4, 7, 10], bar: "baz"}"
Trong ngữ cảnh lưu trữ dữ liệu, tuần tự hóa (hoặc tuần tự hóa) là quá trình dịch cấu trúc dữ liệu hoặc trạng thái đối tượng sang định dạng có thể được lưu trữ (ví dụ: trong tệp hoặc bộ nhớ đệm) hoặc được truyền (ví dụ: qua kết nối mạng liên kết) và xây dựng lại sau. [...]
Các hoạt động ngược lại, giải nén một cấu trúc dữ liệu từ một loạt các byte, là deserialization . Từ Wikipedia
Trong Python "tuần tự hóa" không có gì khác ngoài việc chuyển đổi cấu trúc dữ liệu đã cho (ví dụ a dict
) thành mặt dây chuyền JSON hợp lệ của nó (đối tượng).
True
sẽ được chuyển đổi thành JSON true
và từ điển sẽ được gói gọn trong dấu ngoặc kép.True
/ False
,true
/false
json
là cách tiêu chuẩn để thực hiện tuần tự hóa:Mã ví dụ:
data = {
"president": {
"name": "Zaphod Beeblebrox",
"species": "Betelgeusian",
"male": True,
}
}
import json
json_data = json.dumps(data, indent=2) # serialize
restored_data = json.loads(json_data) # deserialize
# serialized json_data now looks like:
# {
# "president": {
# "name": "Zaphod Beeblebrox",
# "species": "Betelgeusian",
# "male": true
# }
# }
Nguồn: realpython.com
Giải thích về serialize và Deserialize bằng Python
Trong python, mô-đun dưa được sử dụng để tuần tự hóa. Vì vậy, quá trình tuần tự hóa được gọi là tẩy trong Python. Mô-đun này có sẵn trong thư viện tiêu chuẩn Python .
Tuần tự hóa bằng cách sử dụng dưa chua
import pickle
#the object to serialize
example_dic={1:"6",2:"2",3:"f"}
#where the bytes after serializing end up at, wb stands for write byte
pickle_out=open("dict.pickle","wb")
#Time to dump
pickle.dump(example_dic,pickle_out)
#whatever you open, you must close
pickle_out.close()
Tệp PICKLE (có thể được mở bằng trình soạn thảo văn bản như notepad) chứa tệp này (dữ liệu được tuần tự hóa):
€} q (KX 6qKX 2qKX fqu.
Khử muối bằng dưa chua
import pickle
pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)
print(get_deserialized_data_back)
Đầu ra:
{1: '6', 2: '2', 3: 'f'}