二、浅谈 JSON 处理技巧
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():
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 的和文件相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix