python addict的基本用法示例详解

 更新时间:2026年02月26日 09:21:10   作者:徐同保  
addict 是一个流行的 Python 第三方库,主要用来让你像访问属性一样访问字典里的数据(即点操作符访问属性,而不是方括号),从而使字典操作更方便和美观,这篇文章给大家介绍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 的访问方式虽然好用,但不适合严格字典类型约束场景(比如序列化到不支持对象访问的外部接口)。
  • 自动嵌套特性可能会不小心创建未预料的嵌套键,请注意合理使用。

参考文档

如需进阶用法举例,欢迎提出!

补充:Python库addict,使用Dict 的类

Python库addict,使用Dict 的类

from addict import Dict 这行代码导入了 Dict 类,它来自于 addict 模块。在这个上下文中,addict 是一个 Python 库,它提供了一个名为 Dict 的类,用于创建可通过属性访问的字典对象。

使用 addict 中的 Dict 类可以方便地创建字典对象,并且可以像访问对象属性一样访问字典的键值对,这在某些情况下可能会比传统的字典访问方式更加清晰和方便。

传统字典进行访问:

# 创建一个嵌套字典
nested_dict = {
    'person': {
        'name': 'Alice',
        'age': 30,
        'address': {
            'city': 'New York',
            'zip': '10001'
        }
    }
}
# 访问字典的键值对,使用传统的字典访问方式
print(nested_dict['person']['name'])  # 输出: Alice
print(nested_dict['person']['age'])   # 输出: 30
print(nested_dict['person']['address']['city'])  # 输出: New York
print(nested_dict['person']['address']['zip'])   # 输出: 10001
# 添加新的键值对
nested_dict['person']['job'] = 'Engineer'
# 输出更新后的字典
print(nested_dict['person']['job'])  # 输出: Engineer

使用Dict类进行访问:

from addict import Dict
	# 创建一个嵌套字典
	nested_dict = {
	    'person': {
	        'name': 'Alice',
	        'age': 30,
	        'address': {
	            'city': 'New York',
	            'zip': '10001'
	        }
	    }
	}
	# 使用 Dict 类创建一个可通过属性访问的字典对象
	addict_dict = Dict(nested_dict)
	# 访问字典的键值对,就像访问对象属性一样
	print(addict_dict.person.name)  # 输出: Alice
	print(addict_dict.person.age)   # 输出: 30
	print(addict_dict.person.address.city)  # 输出: New York
	print(addict_dict.person.address.zip)   # 输出: 10001
	# 添加新的键值对
	addict_dict.person.job = 'Engineer'
	# 输出更新后的字典
	print(addict_dict.person.job)  # 输出: Engineer

总结

使用 addict 库中的 Dict 类时,可以像访问对象属性一样访问字典的键值对。这在访问深层嵌套的字典时尤其方便。
他只是编写代码的时候比传统字典访问要方便一些,其他的没有区别。

到此这篇关于python addict的用法的文章就介绍到这了,更多相关python addict用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python特征降维知识点总结

    Python特征降维知识点总结

    在本篇文章里小编给大家整理了一篇关于Python特征降维知识点总结内容,有需要的朋友们可以学习参考下。
    2021-08-08
  • 基于Python自制一个资源管理器

    基于Python自制一个资源管理器

    这篇文章主要为大家详细介绍了如何基于Python自制一个资源管理器,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下
    2025-02-02
  • 如何利用python多线程爬取天气网站图片并保存

    如何利用python多线程爬取天气网站图片并保存

    最近做个天 气方面的APP需要用到一些天气数据,所以下面这篇文章主要给大家介绍了关于如何利用python多线程爬取天气网站图片并保存的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • Python运行错误异常代码含义对照表

    Python运行错误异常代码含义对照表

    这篇文章主要介绍了Python运行错误异常代码含义对照表,需要的朋友可以参考下
    2021-04-04
  • Pycharm的Available Packages为空的解决方法

    Pycharm的Available Packages为空的解决方法

    这篇文章主要介绍了Pycharm的Available Packages为空的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python tkinter库的Text记录点击路经和删除记录详情

    python tkinter库的Text记录点击路经和删除记录详情

    这篇文章主要介绍了python tkinter库的Text记录点击路经和删除记录详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • python线程join方法原理解析

    python线程join方法原理解析

    这篇文章主要介绍了python线程join方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 使用pytorch进行张量计算、自动求导和神经网络构建功能

    使用pytorch进行张量计算、自动求导和神经网络构建功能

    pytorch它是一个基于Python的开源深度学习框架,它提供了两个核心功能:张量计算和自动求导,这篇文章主要介绍了使用pytorch进行张量计算、自动求导和神经网络构建,需要的朋友可以参考下
    2023-04-04
  • python抓取网页中的图片示例

    python抓取网页中的图片示例

    这篇文章主要介绍了python抓取网页中图片的示例,需要的朋友可以参考下
    2014-02-02
  • Python压缩和解压缩zip文件

    Python压缩和解压缩zip文件

    这篇文章主要介绍了Python压缩和解压缩zip文件,本文直接给出实例代码,需要的朋友可以参考下
    2015-02-02

最新评论