文章目录
- 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’]
- 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”}
目录
- 基本用法
- 安装 addict
- 基本示例
- 嵌套赋值
- 像正常字典一样赋值
- 兼容字典的方法
- 删除属性
- 转回普通 dict
- 支持序列化
- 典型应用场景
- 注意事项
- Python库addict,使用Dict 的类
- 总结
addict 是一个流行的 Python 第三方库,主要用来让你像访问属性一样访问字典里的数据(即点操作符访问属性,而不是方括号),从而使字典操作更方便和美观。常用的核心类为Dict。
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']
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
如需进阶用法举例,欢迎提出!
补充: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 addict的基本用法示例详解
- Python中addict库使用Dict的类
- 详解Python中Addict模块的使用方法