1. JSON:一种轻量级的数据交换格式,一般接口返回的数据类型都是JSON。
JSON的定义格式与字典相同,也是键值对方式,如{key:value}。其实 JSON 是字符串,由于字符串不能用 key、value 来取值,所以要先转换为字典才可以。
2. JSON 模块常用的四个方法:
(1)json.dumps():将 Python 任意对象转换成 string 对象
def json_dumps_demo():
test_list = [1, 2, 3]
print(type(json.dumps(test_list))) # 打印结果为:str
test_dict = {"name": "test", "age": 10}
print(type(json.dumps(test_dict))) # 打印结果为:str
test_int = 99
print(type(json.dumps(test_int))) # 打印结果为:str
(2)json.loads():将 string 对象转换成 python 对象
def json_loads_demo():标签:浅谈,json,JSON,dict,test,序列化,string,技巧 From: https://www.cnblogs.com/xianyumaixianyu/p/18262784
string_list = "[1, 2, 3]"
print(type(json.loads(string_list))) # 打印结果为:list
string_dict = '{"name": "test", "age": 10}'
print(type(json.loads(string_dict))) # 打印结果为:dict
string_int = "99"
print(type(json.loads(string_int))) # 打印结果为:int
(3)json.dump():序列化,将Python对象序列化成JSON格式并写入文件
def json_dump_demo():
test_dict = {"name": "test", "age": 10}
with open("json_test.json", "w") as fp:
json.dump(test_dict, fp, indent="\t", ensure_ascii=False)
(4)json.load():反序列化,从JSON文件中读取数据并将其反序列化为Python对象
def json_load_demo():
with open("json_test.json", "r") as fp:
data = json.load(fp)
print(type(data)) # 打印结果为:dict
总结:
序列化和反序列化:数据转换的两个互逆过程,用于在不同呢环境中传递和存储数据
序列化:将对象的状态信息转换为可存储或传输的格式,例如字节流、JSON字符串或XML文档;目的:将复杂的数据结构转换成已存储、传输和共享的格式
反序列化:将序列化后的数据转换回原始的对象或数据结构;目的:重建对象的状态,以便程序能够使用它
类比:
序列化(dump):将乐高模型(高级数据类型)拆解成各个零件(字符串)
反序列化(load):将各个零件(字符串)组装成乐高模型(高级数据类型)
json.dump()、json.dumps():序列化,将Python对象转换成JSON字符串
json.load()、json.loads():反序列化,将JSON字符串转换成Python对象
* 带 s 的都是和字符串相关,不带 s 的和文件相关