Python 的 json 模组是一个内建的库,用于处理 JSON(JavaScript Object Notation)数据格式。JSON 是一种轻量级的资料交换格式,易于人类阅读和撰写,也易于机器解析和生成。以下是对 json 模组的详细介绍,包括其功能、常用函数和示例。
什么是 JSON?
JSON 格式: JSON 是一种基于文本的资料格式,通常用于网路应用程式之间的资料传递。它使用键值对(key-value pairs)的方式来表示资料,结构类似于 Python 的字典。
资料类型: JSON 支持多种资料类型,包括:
- 字串(String)
- 数字(Number)
- 布林值(Boolean)
- 阵列(Array)
- 物件(Object)
- 空值(null)
Python 的 json 模组功能
Python 的 json 模组提供了多个函数,用于在 Python 对象和 JSON 数据之间进行转换和序列化。
常用函数
json.dumps(obj) | 将 Python 对象转换为 JSON 字串。 | obj: 要转换的 Python 资料结构。可选参数如 indent 用于格式化输出。 | JSON 字串 |
json.loads(json_string) | 将 JSON 字串‘转换’解析为 Python 对象。 | json_string: 要解析的 JSON 字串。 | Python 对象 |
json.dump(obj, file) | 将 Python 对象‘写入’到文件中,以 ‘JSON 格式储存’。 | obj: 要写入的 Python 资料结构。file: 开启的文件对象。 | 无 |
json.load(file) | 从文件中‘读取’ JSON 数据并解析为 Python 对象。 | file: 开启的文件对象。 | Python 对象 |
1.json.dumps(obj):将 Python 对象转换为 JSON 字串。- 参数:- obj: 要转换的 Python 资料结构。- 可选参数如 indent 用于格式化输出。范例:
import json
data = {"name": "John", "age": 30}
json_string = json.dumps(data)
print(json_string) # 输出: {"name": "John", "age": 30}
2.json.loads(json_string):将 JSON 字串解析为 Python 对象。参数:json_string: 要解析的 JSON 字串。
import json
json_string = \'{"name": "John", "age": 30}\'
data = json.loads(json_string)
print(data) # 输出: {\'name\': \'John\', \'age\': 30}
3.json.dump(obj, file):将 Python 对象写入到文件中,以 JSON 格式储存。参数:obj: 要写入的 Python 资料结构。file: 开启的文件对象。
import json
data = {"name": "John", "age": 30}
with open(\'data.json\', \'w\') as f:
json.dump(data, f)
4.json.load(file):从文件中读取 JSON 数据并解析为 Python 对象。参数:file: 开启的文件对象。
import json
with open(\'data.json\', \'r\') as f:
data = json.load(f)
print(data) # 输出: {\'name\': \'John\', \'age\': 30}
小结
使用 json.loads() 当你有一个 JSON 文件字串需要‘转换’解析时。使用 json.load() 当你需要从一个JSON 文件中读取数据时。使用 json.dump() 当你想把 Python 里面资料(比如字典)写入到一个json文件中,并储存。使用 json.dumps() Python 里面的资料变成 JSON 字串,但不需要写入文件
序列化与反序列化:当你将 Python 字典转换为 JSON 字串时,这个过程称为序列化(Serialization)。这使得 Python 对象能够以一种标準格式进行储存或传输。反之,将 JSON 字串转换回 Python 对象的过程称为反序列化(Deserialization)。