python load/loads dump/dumps的区别

发布于:2025-06-11 ⋅ 阅读:(27) ⋅ 点赞:(0)

在 Python 中,json 模块提供了 load/loads 和 dump/dumps 这四组方法,用于 JSON 数据的序列化和反序列化。它们的区别主要在于输入/输出的数据类型和用途:

1. json.load() vs json.loads()

json.load()

  • 作用:从 文件对象 读取 JSON 数据,并解析为 Python 对象(如 dictlist)。

  • 输入:文件对象(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 结尾的方法(loadsdumps)处理字符串(string

  • 不带 s 的方法(loaddump)处理文件(file

这样,你就可以根据需求选择合适的方法进行 JSON 数据的读取或写入!