基本概念
JSON:
JSON(JavaScript Object Notation, JS 物件標記) 是一種輕量級的資料交換格式。簡潔和清晰的層次結構使得 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()