跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python Addict 库基本用法与特性

Python Addict 库允许通过点操作符访问字典数据,支持自动递归嵌套赋值、兼容内建字典方法及序列化。适用于处理嵌套结构如 json 配置,提升代码可读性。需注意该方式不适合严格字典类型约束场景,且自动嵌套可能意外创建未预料的键。

颠三倒四发布于 2026/3/23更新于 2026/7/2333 浏览

Python Addict 库基本用法与特性

addict 是一个流行的 Python 第三方库,主要用来让你像访问属性一样访问字典里的数据(即点操作符访问属性,而不是方括号),从而使字典操作更方便和美观。常用的核心类为 Dict。

基本用法

安装 addict

pip install addict

基本示例

from addict import Dict
data = Dict()
data.name = "Tom"  # 直接赋值属性
data.age = 21
print(data)  # {'name': 'Tom', 'age': 21}
print(data.name)  # 'Tom'
print(data['name'])  # 也可以字典方式访问

嵌套赋值

Addict 最大的特色是可以'自动递归嵌套',即你可以直接给嵌套的属性赋值,无需事先初始化嵌套字典。

from addict import Dict
data = Dict()
data.user.info.name = "Alice"
data.user.info.age = 22
print(data)  # {'user': {'info': {'name': 'Alice', 'age': 22}}}
print(data.user.info.name)  # 'Alice'

像正常字典一样赋值

data = Dict({'a': 1, 'b': {'c': 2}})
data.b.c  # 2
data['b']['c']  # 2
data.b.c = 3
print(data['b']['c'])  # 3

兼容字典的方法

Addict 的对象可以与内建字典的方法通用:

data.keys()
data.items()
del data.name

删除属性

del data.user.info.name  # 或者 del data['user']['info']['name']

转回普通 dict

normal_dict = data.to_dict()

支持序列化

addict 支持和 json 模块互操作

import json
from addict import Dict
d = Dict(user="Anna")
json_str = json.dumps(d)
print(json_str)  # {"user": "Anna"}

典型应用场景

  • 处理嵌套字典结构(如 json 配置、返回数据等)
  • 代码更加易读、书写直观
  • 需要动态添加嵌套结构的情况

注意事项

  • addict 的访问方式虽然好用,但不适合严格字典类型约束场景(比如序列化到不支持对象访问的外部接口)。
  • 自动嵌套特性可能会不小心创建未预料的嵌套键,请注意合理使用。

参考文档

  • addict 文档
  • PyPI addict

目录

  1. Python Addict 库基本用法与特性
  2. 基本用法
  3. 安装 addict
  4. 基本示例
  5. 嵌套赋值
  6. 像正常字典一样赋值
  7. 兼容字典的方法
  8. 删除属性
  9. 转回普通 dict
  10. 支持序列化
  11. 典型应用场景
  12. 注意事项
  13. 参考文档
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 自学经典书籍推荐与系统学习路线指南
  • OpenClaw 接入 Telegram 机器人配置与加入群聊
  • 全栈分页方案:MyBatisPlus 与 Thymeleaf 整合实现
  • 2024 年全职 AI 产品经理转型时机分析
  • 阿里 OmniSearch:自适应规划代理在多模态检索增强生成中的应用
  • Apache IoTDB 全场景部署:跨端边云的时序数据库实践
  • Python 基础语法完全指南:变量数据类型运算符与字符串
  • Linux 内核链表分析与实现原理
  • C++继承:从切片到菱形陷阱
  • 大模型提示工程:掌握 Prompt 原理与技巧,提升 AI 生成内容质量
  • C++ 高精度时间库 chrono 详解
  • OpenClaw 多飞书机器人与多 Agent 团队实战复盘
  • 飞算 JavaAI 插件辅助生成 Java 项目实战
  • AI + 鸿蒙游戏:会是下一个爆点?
  • Java 面向对象核心:继承、多态与抽象类接口
  • 数据结构:递归算法核心原理与实现
  • C++11 手写 Promise 实现及与 std::promise 对比
  • 从零开始理解 C++ 堆数据结构
  • 双指针经典算法题实战解析:从原理到代码
  • 国产 AI 大模型 Kimi 技术解析与应用前景

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online