python庫Munch的使用記錄


開頭

日常操作字典發現發現並不是很便利,特別是需要用很多 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': []})

完成。 這個庫就可以用了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM