当前位置: 首页 > 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
http://www.xdnf.cn/news/316837.html

相关文章:

  • Kubernetes调度技术:污点与容忍生产级应用指南
  • Selenium使用指南
  • 7.2.安全防御
  • 一个项目的周测试的文档(Billing Service 测试文档)
  • pcie协议复位
  • 1688拍立淘搜索相似商品API接口概述,json数据示例参考
  • 适合java程序员的Kafka消息中间件实战
  • 用 NGINX 打造高性能 FastCGI 加速 `ngx_http_fastcgi_module`
  • 深入理解Java三大特性:封装、继承和多态
  • 国家信息中心:基于区块链和区块链服务网络(BSN)的可信数据空间建设指引
  • jenkins配置多nexus仓库多maven版本
  • 深入解析华为交换机中的VRRP原理
  • P值、置信度与置信区间的关系:统计推断的三大支柱
  • 三、Hadoop1.X及其组件的深度剖析
  • iOS蓝牙技术实现及优化
  • 【神经网络与深度学习】VAE 在解码前进行重参数化
  • 指定Docker镜像源,使用阿里云加速异常解决
  • lvgl多语言设置
  • Diamond iO:实用 iO 的第一缕曙光
  • 台州智惠自动化签约智橙PLM,让创新持续发生
  • 开发搭载阿里云平台的物联网APP(支持数据接收与发送)
  • 【C++】类和对象
  • Vue3+TS+vite项目本地测试数据接口搭建
  • 1.1.2 简化迭代器 yield return的使用
  • 音乐网站|基于SprinBoot+vue的音乐网站(源码+数据库+文档)
  • RPA与After Effects 2024深度融合:自动化影视特效全链路革命
  • ESP32蓝牙开发笔记(十五)
  • 开发 Chrome 扩展中的侧边栏图标设置实录(Manifest V3)
  • [特殊字符] Milvus + LLM大模型:打造智能电影知识库系统
  • Python入门(二)