開頭
日常操作字典發現發現並不是很便利,特別是需要用很多 get('xxx','-') 的使用,就覺得很煩,偶然看到Kuls大佬公眾號發布的一篇技術文有對 python munch庫的使用, 使得字典操作的方法變得簡便了,特意嘗試並記錄下來使用。
安裝
pip install munch
munch方法的使用
基本方法和字典操作一樣,參考代碼如下
# munch庫
from munch import *
# 創建新的字典,有兩種方法
# 1、新建字典1
demo = Munch(name='james', age='20')
demo2 = Munch(names='kobe', ages='40')
print(demo, demo2)
print(demo.name) # james 取值的時候可以像orm一樣直接提取, 就不需要用get,或者 ['name']
print(demo.get('name'), demo2['name]) # 這樣操作也是支持的
# 2、新建字典2
demo3 = Munch()
demo3.name = 'ad'
demo3.ages = 26
print(demo3)
# 3、修改元素
demo3.name = 'morix'
print(demo3) # 直接就可以修改
# 4、 刪除元素
demo3.pop('name') # 第一種刪除
print(demo3)
del demo3["age"] # 第二種刪除
print(demo3)
# 5、多字典合並,或者增加單個值
demo.update(demo2) # 輸出為none,
print(demo) # 得到一個新得munch對象
# 或者
demo.update({'ponies':'are prettty!'},hello=42) # 得到一個新得munch對象
# 或者
ss = Munch({**demo, **demo2})
print(ss) # 得到一個新的munch對象
# 6、 一個字典里面包含多個對象,並可以取出
demo = Munch(name='james', age='20', na=[1,2,3], demo_dict=Munch(new='test'))
print(demo.na) # 取出可以循環的列表
print(demo.demo_dict.new) # 鏈式調用
上面是方法是一些比較日常的使用,除了這些,還有一些方法要記住
# 1、 像字典一樣取出所有的key
demo = Munch(name='james', age='20', na=[1,2,3], demo_dict=Munch(new='test'))
print(demo.keys()) # dict_keys(['name', 'age', 'na', 'demo_dict'])
# 2、 取出所有的value
print(demo.values())
# 3、key和value 一起取出
ss = [(k,demo[k]) for k in demo] # 第一種方法
for k,v in demo.items(): # 第二種方法
print(k, v)
# 4、字典解構
demo2 = Munch(knights='lbj', ni='lakes')
ss = "The {knights} who say {ni}!".format(**demo2)
# 5、當鍵值對不符合要求的時候,需要使用get方法
print(demo2.get('hao','0')) # hao 不存在demo2的鍵值對里面, 會返回0,如果直接 demo2.hao, 會爆 AttributeError: hao 的錯誤
# 或者可以設定返回的默認值
demo2 = DefaultMunch('-', name='lbj')
print(demo2.hao) # 返回設定好的 '-'
# 或者可以設定返回一個工廠函數(列表,元組,字典)
demo2 = DefaultFactoryMunch(list, name='lbj')
print(demo2.hao) # 返回 []
print(demo2) # 查看munch對象的時候會看到結構為 DefaultFactoryMunch(list, {'name': 'lbj', 'hao': []})
完成。 這個庫就可以用了
