介绍一下Python json模块的所有函数的功能及用法
时间: 2024-12-17 21:29:01 浏览: 7
Python 的 `json` 模块主要用于处理 JSON 数据,它提供了几个重要的函数用于编码(将 Python 对象转换成 JSON 字符串)和解码(从 JSON 字符串还原成 Python 对象)。以下是其中一些关键函数及其功能和用法:
1. **json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, separators=None, default=None, sort_keys=False)**:
- `dumps`: 将 Python 对象编码为 JSON 字符串。`obj` 是待编码的对象,如字典、列表、自定义类实例等。可选参数如 `indent` 设置缩进美化输出。
2. **json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None)**:
- `load`: 从文件对象(fp)或字符串解码 JSON 数据并返回对应的 Python 对象。`cls` 可指定自定义解析器类。
3. **json.loads(s, *, encoding='utf-8', cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None)**:
- `loads`: 解析给定的 JSON 字符串 `s` 为 Python 对象。同 `load` 函数类似,`object_hook` 用于指定自定义解析规则。
4. **json.JSONDecoder([parse_float, parse_int, parse_constant])**:
- `JSONDecoder` 类:提供创建自定义解码器的机会,允许自定义解析浮点数、整数和常量。
5. **json.JSONEncoder([default, iterable_decode])**:
- `JSONEncoder` 类:创建自定义编码器,可以设置默认序列化策略,例如对某些特殊类型的对象进行处理。
6. **json.JSONEncoder.default(self, o)**:
- `default` 方法:当遇到无法直接编码的对象时,由该方法决定如何转为 JSON。
7. **json.dump(obj, fp[, *args, **kwargs])** 和 **json.dump(obj, fp, **kwargs)**:
- 二进制版本的 `dumps`,直接将数据写入文件对象。
使用示例:
```python
import json
# 编码
data = {"name": "John", "age": 30}
encoded_data = json.dumps(data, indent=4) # 输出格式化的 JSON
# 解码
with open('data.json', 'r') as f:
decoded_data = json.load(f)
阅读全文