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