python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python addict用法

python addict的基本用法示例详解

作者:徐同保

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"}

典型应用场景

注意事项

参考文档

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

补充: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用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文