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

Python小酷库系列:5个常用的dict属性化访问扩展库

5个常用的dict属性化访问扩展库

    • 嵌套结构
    • 高级功能
    • 性能
    • 综合建议

在前面我们详细讲解了Box和Munch这两个dict属性化访问的扩展库,总体而言它们主要用于提升配置文件数据、JSON对象数据的可读性,减少了代码中双引号。在这一领域中还有dotmap、addict 和 easydict等,本节我们就来对比一下这五个dict属性化访问扩展库。

鉴于 box、munch、dotmap、addict 和 easydict在基本使用上都比较接近,在此不再赘述,本节主要考察它们在嵌套结构高级功能性能上的差异,以帮助我们在实际使用中做出合适的选择。

嵌套结构

功能addictmunchboxdotmapeasydict
自动解析嵌套
自动创建嵌套✅ d.user.name = “Alice”❌ d[‘user’] = Munch(); d.user.name = “Alice”✅ Box(default_box=True)✅ d.user.name = “Alice”❌ 需手动设置子项为 EasyDict
浅拷贝
深拷贝✅ merge_update

高级功能

功能addictmunchboxdotmapeasydict
默认值(auto create)✅ default_box
深度合并⚠️ 有限支持✅ merge_update
属性与键冲突保护
JSON / YAML 友好
冻结/只读模式✅(可配置)

性能

使用 timeit 进行 .user.name 和[‘user’][‘name’] 的性能测试(百万次访问)(单位:秒)

原生 dictaddictmunchboxdotmapeasydict
访问时间0.07s~0.40s~0.30s~0.60s~0.35s~0.25s
赋值时间0.08s~0.45s~0.35s~0.65s~0.38s~0.28s
嵌套创建✅ 快✅ 中✅ 中

综合建议

在进行本次对比时,以上五个扩展库在pypi上的最后release时间分别为:

  • box 2025
  • easydict 2024
  • munch 2023
  • dotmap 2022
  • addict 2020
    考虑到用新不用旧的原则以及上述综合因素,建议一般情况下可以使用 box,对性能有一定要求时,可以选用easydict

相关文章:

  • 极狐GitLab 命名空间的类型有哪些?
  • SENSE2020BSI sCMOS科学级相机主要参数及应用场景
  • SLAM:单应矩阵,本质矩阵,基本矩阵详解和对应的c++实现
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK在Linux系统下设置多个USB相机(C++)
  • python 绝对引用和相对引用
  • 从字节到链接:用类型化数组生成神奇的对象 URL
  • 实践004-Gitlab CICD部署应用
  • JVM——Java内存模型
  • 第十五届蓝桥杯Web开发应用赛道省/国赛部分题解
  • 【机器学习】Logistic 回归
  • 使用OpenCV的VideoCapture播放视频文件示例
  • mysql集成Qwen大模型MCP计算【附实战代码】
  • 安装并运行第一个Spark程序
  • 【工具变量】最新华证ESG评级得分数据-含xlsx及dta格式(2009-2024.12)
  • 认识tomcat(了解)
  • 怎样避免住宅IP被平台识别
  • Search After+PIT 解决ES深度分页问题
  • GoFly企业版框架升级2.6.6版本说明(框架在2025-05-06发布了)
  • 不同大模型对提示词和问题的符号标识
  • 深入解析华为交换机中的VRRP原理
  • ​中国超大规模市场是信心所在——海南自贸港建设一线观察
  • 重温经典|开播20周年,仙剑的那些幕后你知道吗?
  • 巴基斯坦称回应挑衅,对印度发起军事行动
  • 春秋航空:如果供应链持续改善、油价回落到合理水平,公司补充运力的需求将会增长
  • “毛茸茸”的画,诗意、温暖又治愈
  • 马上评丨行人转身相撞案:走路该保持“安全距离”吗