当前位置: 首页 > ds >正文

python load/loads dump/dumps的区别

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

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

json.load()

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

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

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

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

http://www.xdnf.cn/news/13324.html

相关文章:

  • Web 前端性能优化全景指南与实战策略
  • 何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
  • 2025-06-09 java面试总结
  • 新基建浪潮下:中国新能源汽车充电桩智慧化建设与管理实践
  • CC攻击与WAF的对抗战
  • 深入理解 Socket 的底层原理
  • 【前端】每日一道面试题7:WeakMap和WeakSet是干嘛用的,有哪些使用场景
  • Linux-08 ubuntu 的 chrome浏览器不能使用 搜狗 输入法,但是火狐可以
  • 高效总结多篇文献的AI工具推荐:如何用AI批量整理文献综述与笔记?
  • 2025-05-08-deepseek本地化部署
  • 单杠引体向上,助力消防智能考核
  • 软件定义车辆加速推进汽车电子技术的未来发展
  • 03_跨域问题解决
  • 在Zenodo下载文件 用到googlecolab googledrive
  • can通信传输bz2文件损坏解决方法
  • Linux字符串占用空间统计方法
  • Supervisor服务监督部署Python+Django应用
  • Docker环境下FileRise私有云盘在飞牛NAS的部署与穿透实践
  • Day10_C语言基础
  • 【黑客与安全】Linux系列命令之进程相关命令
  • 【论文阅读】:Weighted Graph Cuts without Eigenvectors:A Multilevel Approach
  • 如何使用Qwen-VL 2.5进行图像分割
  • 使用Python构建高效词汇表:N-Gram词频统计实战
  • 力扣 1456. 定长子串中元音的最大数目 的多解
  • 图数据在人工智能中的应用场景
  • 苍穹外卖-day03
  • 国防科技大学计算机基础课程笔记02信息编码
  • 基于梯度的中毒攻击
  • vue3+vite项目中使用.env文件环境变量方法
  • React Native 是什么?为什么学它?