json.load(), json.loads(), json.dump(), json.dumps()各自的作用和区别详解
1. json.loads():将 JSON 格式的字符串解析为 Python 对象。
示例:
import json json_str = '{"name": "Alice", "age": 30}' data = json.loads(json_str) print(data) # 输出:{'name': 'Alice', 'age': 30}
2. json.dumps():将 Python 对象转换为 JSON 格式的字符串。
示例:
import json data = {"name": "Alice", "age": 30} json_str = json.dumps(data) print(json_str) # 输出:{"name": "Alice", "age": 30}
3. json.dump():将 Python 对象转储为 JSON 格式的字符串并写入文件。
import json data = {"name": "Alice", "age": 30} with open('data.json', 'w') as f: json.dump(data, f)
4. json.load():从文件中加载 JSON 数据并解析为 Python 对象。
import json with open('data.json', 'r') as f: data = json.load(f) print(data) # 输出:{'name': 'Alice', 'age': 30}
记忆技巧:
json.loads()中的s表示 "string",表示它接收一个 JSON 格式的字符串作为参数进行加载。json.dump()中的p表示 "Python",表示它接收一个 Python 对象作为参数进行转储。
5. json.dump()和json.dumps()有何区别? 同样json.load()和json.loads()又有何区别呢?
当处理文件时,使用 json.dump() 和 json.load()。
例如:
import json # 写入 JSON 数据到文件 data = {"name": "John", "age": 30, "city": "New York"} with open("data.json", "w") as file: json.dump(data, file) # 从文件中读取 JSON 数据 with open("data.json", "r") as file: loaded_data = json.load(file) print(loaded_data) # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}
当处理字符串时,使用 json.dumps() 和 json.loads()。
例如:
import json # 将 Python 对象转换为 JSON 字符串 data = {"name": "John", "age": 30, "city": "New York"} json_string = json.dumps(data) # 将 JSON 字符串转换为 Python 对象 loaded_data = json.loads(json_string) print(loaded_data) # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}
这样做的好处是,dump() 和 load() 可以直接与文件交互,而 dumps() 和 loads() 则更适用于在内存中处理数据。
json.dump() 和 json.dumps() 的区别在于它们处理的数据来源不同:
json.dump()将 Python 对象转储为 JSON 格式的字符串,并写入文件中。json.dumps()将 Python 对象转换为 JSON 格式的字符串,但是不进行文件写入操作。
同样,json.load() 和 json.loads() 的区别在于它们处理的数据来源也不同:
json.load()从文件中加载 JSON 数据并解析为 Python 对象。json.loads()将 JSON 格式的字符串解析为 Python 对象。
简而言之,dump() 和 load() 操作文件,而 dumps() 和 loads() 则不操作文件,它们只是处理字符串和对象之间的转换。

浙公网安备 33010602011771号