Python中序列化/反序列化JSON格式的資料

兜里有糖请分享發表於2024-11-07

基本概念

  JSON:

  JSON(JavaScript Object Notation, JS 物件標記) 是一種輕量級的資料交換格式。簡潔和清晰的層次結構使得 JSON 成為理想的資料交換語言。 易於人閱讀和編寫,同時也易於機器解  析和生成,並有效地提升網路傳輸效率。

  序列化:是將資料結構或物件轉換為位元組流(二進位制資料)以便儲存或傳輸

  反序列化:是將位元組流還原為原始資料結構或物件的過程。

json模組是Python標準庫中的一個模組,用於處理JSON(JavaScript Object Notation)資料。它提供了一組函式來解析和生成JSON資料,使得在Python中處理JSON變得非常方便。

Python JSON
dict object
list, tuple array
str string
int, float number
True true
False false
None null

Python序列化

  將Python資料物件轉化為json格式的字串

  語法:json.dumps()

 1 num = 3.14
 2 name = 'hello'
 3 l = [1, 2, 3]
 4 t = (4, 5, 6)
 5 d = {'name': "hello", 'age': 19, "is_married": False, "gfs": None}
 6 
 7 print(repr(json.dumps(num)))  # '3.14'
 8 print(repr(json.dumps(name)))  # '"hello"'
 9 print(repr(json.dumps(l)))  # '[1, 2, 3]'
10 print(repr(json.dumps(t)))  # '[4,5,6]'
11 print(repr(json.dumps(d)))  # '{"name":"hello","age":19,"is_married":false,"gfs":null}'

Python反序列化

  將json格式字串轉為Python支援的資料物件格式

  語法:json.loads()

1 import json
2 
3 s = '{"name":"hello","age":19,"is_married":false,"gfs":null}'
4 data = json.loads(s)
5 print(data, type(data))  # {'name': 'hello', 'age': 19, 'is_married': False, 'gfs': None} <class 'dict'>

補充:

JS的序列化和反序列化(前端JS和後端Python之間網路傳輸資料透過JSON來進行交換)

  序列化:JSON.stringify()

  反序列化:JSON.parse()

相關文章