Python的json模块和jsonpath模块
一.json模块
Python的json模块是一个内置的标准库,用于处理JSON数据,它提供了Python对象和JSON格式之间进行转换的简单接口。
1. 核心函数概览
json 模块主要包含 4 个核心函数和 2 个类:
核心函数:
json.dumps()- 序列化为字符串json.dump()- 序列化到文件(将python对象写入json文件)json.loads()- 从字符串反序列化json.load()- 从文件反序列化(读取json文件的数据并转换为Python对象)
核心类:
JSONEncoder- 自定义编码器JSONDecoder- 自定义解码器
1.基础用法
1.将Python对象转换为JSON字符串(编码)
import json
# Python 字典
data = {"name": "张三","age": 30,"city": "北京","is_student": False,"hobbies": ["读书", "游泳", "编程"],"scores": {"数学": 95, "英语": 88}
}
json_str = json.dumps(data)
print(json_str)输出:
{"name": "\u5f20\u4e09", "age": 30, "city": "\u5317\u4eac", "is_student": false, "hobbies": ["\u8bfb\u4e66", "\u6e38\u6cf3", "\u7f16\u7a0b"], "scores": {"\u6570\u5b66": 95, "\u82f1\u8bed": 88}}
json.jumps()函数
jump 跳跃
作用:将Python对象编码成JSON字符串
主要参数:json.dumps(obj,ensure_ascii=False)
参数解释:
obj:要序列化的Python对象
ensre_ascii:默认值为True,表示确保输出的所有非ASCII字符都被转义,转义成\uxxxx形式的Unicode转义序列(历史性兼容问题,确保JSON字符串只包含ASCII字符,可以在任何系统上安全传输,可以避免目标系统不支持UTF-8编码而导致的乱码问题);如果设置为False,则这些字符都会被原样输出
json_str = json.dumps(data,ensure_ascii=False)输出:
{"name": "张三", "age": 30, "city": "北京", "is_student": false, "hobbies": ["读书", "游泳", "编程"], "scores": {"数学": 95, "英语": 88}}
2.将JSON字符串转换为Python对象
import json
# JSON 字符串
json_data = '{"name": "李四", "age": 25, "city": "上海"}'# 转换为 Python 字典
python_dict = json.loads(json_data)
print(python_dict)
print(type(python_dict))输出:
{'name': '李四', 'age': 25, 'city': '上海'}
<class 'dict'>
2.jsonpath模块
JsonPath是用于从JSON文件中提取数据的查询语言,类似于XPath用于XML文档
jsonpath是Python的一个第三方模块,实现了JsonPath语法,使你能够从复杂的JSON数据中提取到你想要的信息
