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用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Pycharm的Available Packages为空的解决方法
这篇文章主要介绍了Pycharm的Available Packages为空的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-09-09
python tkinter库的Text记录点击路经和删除记录详情
这篇文章主要介绍了python tkinter库的Text记录点击路经和删除记录详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下2022-06-06


最新评论