基本概念
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()