python addict的用法
addict 是一个流行的 Python 第三方库,主要用来让你像访问属性一样访问字典里的数据(即点操作符访问属性,而不是方括号),从而使字典操作更方便和美观。常用的核心类为Dict。
基本用法
安装 addict
pip install addict 基本示例
from addict import Dict data = Dict() data.name ="Tom"# 直接赋值属性 data.age =21print(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 =22print(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 =3print(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 的访问方式虽然好用,但不适合严格字典类型约束场景(比如序列化到不支持对象访问的外部接口)。
- 自动嵌套特性可能会不小心创建未预料的嵌套键,请注意合理使用。
参考文档:
如需进阶用法举例,欢迎提出!