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 配置、返回數據等)
- 代碼更加易讀、書寫直觀
- 需要動態(tài)添加嵌套結構的情況
注意事項
- addict 的訪問方式雖然好用,但不適合嚴格字典類型約束場景(比如序列化到不支持對象訪問的外部接口)。
- 自動嵌套特性可能會不小心創(chuàng)建未預料的嵌套鍵,請注意合理使用。
參考文檔:
如需進階用法舉例,歡迎提出!
補充:Python庫addict,使用Dict 的類
Python庫addict,使用Dict 的類
from addict import Dict 這行代碼導入了 Dict 類,它來自于 addict 模塊。在這個上下文中,addict 是一個 Python 庫,它提供了一個名為 Dict 的類,用于創(chuàng)建可通過屬性訪問的字典對象。
使用 addict 中的 Dict 類可以方便地創(chuàng)建字典對象,并且可以像訪問對象屬性一樣訪問字典的鍵值對,這在某些情況下可能會比傳統的字典訪問方式更加清晰和方便。
傳統字典進行訪問:
# 創(chuàng)建一個嵌套字典
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
# 創(chuàng)建一個嵌套字典
nested_dict = {
'person': {
'name': 'Alice',
'age': 30,
'address': {
'city': 'New York',
'zip': '10001'
}
}
}
# 使用 Dict 類創(chuàng)建一個可通過屬性訪問的字典對象
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 類時,可以像訪問對象屬性一樣訪問字典的鍵值對。這在訪問深層嵌套的字典時尤其方便。
他只是編寫代碼的時候比傳統字典訪問要方便一些,其他的沒有區(qū)別。
到此這篇關于python addict的用法的文章就介紹到這了,更多相關python addict用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Windows下PyCharm安裝Numpy包及無法安裝問題解決方案
這篇文章主要介紹了詳解Windows下PyCharm安裝Numpy包及無法安裝問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
python numpy中multiply與*及matul 的區(qū)別說明
這篇文章主要介紹了python numpy中multiply與*及matul 的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05
Pandas數據類型自行變換及數據類型轉換失敗問題分析與解決
這篇文章主要介紹了Pandas數據類型自行變換及數據類型轉換失敗問題分析與解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Python中列表遍歷使用range和enumerate的區(qū)別講解
這篇文章主要介紹了Python中列表遍歷使用range和enumerate的區(qū)別,在Python編程語言中,遍歷list有range和enumerate方法,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
Pycharm中Python環(huán)境配置常見問題解析
這篇文章主要介紹了Pycharm中Python環(huán)境配置常見問題,結合圖文形式分析了Pycharm中Python環(huán)境配置模塊路徑問題、虛擬環(huán)境創(chuàng)建、配置遠程服務器、連接數據庫等常見問題與操作方法,需要的朋友可以參考下2020-01-01

