在 Python 中,json
模块提供了 load
/loads
和 dump
/dumps
这四组方法,用于 JSON 数据的序列化和反序列化。它们的区别主要在于输入/输出的数据类型和用途:
1. json.load()
vs json.loads()
json.load()
作用:从 文件对象 读取 JSON 数据,并解析为 Python 对象(如
dict
,list
)。输入:文件对象(
file
)。示例:
import json with open("data.json", "r", encoding="utf-8") as f: data = json.load(f) # 从文件读取 JSON print(data)
json.loads()
作用:从 字符串 解析 JSON 数据,并转换为 Python 对象。
输入:JSON 格式的字符串(
str
)。示例:
import json json_str = '{"name": "Alice", "age": 30}' data = json.loads(json_str) # 从字符串解析 JSON print(data) # 输出: {'name': 'Alice', 'age': 30}
load
vs loads
对比
方法 | 输入类型 | 用途 |
---|---|---|
load() |
文件对象 | 从文件读取 JSON 数据 |
loads() |
字符串 | 从字符串解析 JSON 数据 |
2. json.dump()
vs json.dumps()
json.dump()
作用:将 Python 对象序列化为 JSON 并写入 文件。
输出:写入文件。
示例:
import json data = {"name": "Bob", "age": 25} with open("output.json", "w", encoding="utf-8") as f: json.dump(data, f) # 写入文件
json.dumps()
作用:将 Python 对象序列化为 JSON 字符串。
输出:返回 JSON 格式的字符串。
示例:
import json data = {"name": "Bob", "age": 25} json_str = json.dumps(data) # 转换为 JSON 字符串 print(json_str) # 输出: '{"name": "Bob", "age": 25}'
dump
vs dumps
对比
方法 | 输出类型 | 用途 |
---|---|---|
dump() |
写入文件 | 将 Python 对象写入 JSON 文件 |
dumps() |
字符串 | 将 Python 对象转为 JSON 字符串 |
总结
方法 | 输入/输出 | 用途 |
---|---|---|
load() |
文件 → Python 对象 | 从文件读取 JSON |
loads() |
字符串 → Python 对象 | 从字符串解析 JSON |
dump() |
Python 对象 → 文件 | 写入 JSON 到文件 |
dumps() |
Python 对象 → 字符串 | 转换 Python 对象为 JSON 字符串 |
记忆技巧
s
结尾的方法(loads
,dumps
)处理字符串(string
)。不带
s
的方法(load
,dump
)处理文件(file
)。
这样,你就可以根据需求选择合适的方法进行 JSON 数据的读取或写入!