Python的`json`库提供了一种简便的方法来编码和解码JSON数据。JSON(JavaScript Object Notation)是一种轻量级数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。`json`模块允许你将Python对象转换成JSON格式的字符串(这个过程称为“序列化”),或者将JSON格式的字符串转换回Python对象(这个过程称为“反序列化”)。
1、主要功能
- 序列化:将Python对象转换为JSON字符串。
- `json.dumps()`:将Python对象转化为JSON格式的字符串。
- `json.dump()`:将Python对象转化为JSON格式串,并写入到文件中。
- 反序列化:将JSON格式的字符串转换为Python对象。
- `json.loads()`:将JSON格式的字符串解码为Python对象。
- `json.load()`:读取文件中的JSON字符串,并将其解码为Python对象。
2、基本使用
序列化示例
```python
import json
data = {
'name': 'John Doe',
'age': 30,
'is_employee': True,
'skills': ['Python', 'Django', 'JavaScript']
}
# 将Python对象转换为JSON字符串
json_str = json.dumps(data, indent=4)
print(json_str)
```
反序列化示例
```python
import json
# 假设json_str是从某个地方获取的JSON字符串
json_str = '''
{
"name": "John Doe",
"age": 30,
"is_employee": true,
"skills": ["Python", "Django", "JavaScript"]
}
'''
# 将JSON字符串解码为Python对象
data = json.loads(json_str)
print(data['name']) # 输出: John Doe
```
3、注意事项
- 在JSON中,键必须是字符串类型,因此在将Python字典转换为JSON时,所有非字符串的键都会被转换为字符串。
- JSON标准仅支持一部分数据类型:对象(在Python中为`dict`)、数组(在Python中为`list`或`tuple`)、字符串、数字(整型和浮点型)、布尔值(`True`/`False`),以及`null`(在Python中为`None`)。不支持的Python类型(如日期时间等)需要被转换为支持的类型,或者使用自定义编码器。
Python的`json`库因其简单和强大而广泛用于处理JSON数据,是进行Web开发和数据交换时不可或缺的工具之一。