python load/loads dump/dumps的区别
在 Python 中,json
模块提供了 load
/loads
和 dump
/dumps
这四组方法,用于 JSON 数据的序列化和反序列化。它们的区别主要在于输入/输出的数据类型和用途:
1. json.load()
vs json.loads()
json.load()
-
作用:从 文件对象 读取 JSON 数据,并解析为 Python 对象(如
dict
,list
)。 -
输入:文件对象(
file
)。 -
示例:
import jsonwith open("data.json", "r", encoding="utf-8") as f:data = json.load(f) # 从文件读取 JSON print(data)
json.loads()
-
作用:从 字符串 解析 JSON 数据,并转换为 Python 对象。
-
输入:JSON 格式的字符串(
str
)。 -
示例:
import jsonjson_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 jsondata = {"name": "Bob", "age": 25} with open("output.json", "w", encoding="utf-8") as f:json.dump(data, f) # 写入文件
json.dumps()
-
作用:将 Python 对象序列化为 JSON 字符串。
-
输出:返回 JSON 格式的字符串。
-
示例:
import jsondata = {"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 数据的读取或写入!