easydict 是一个轻量级的 Python 第三方库仓库,核心目标是简化 Python 字典的访问方式,让字典可以像访问对象属性一样(dict.key)替代传统的键取值(dict['key']),提升代码可读性与开发效率
好处有:
属性式访问:字典键可通过 . 访问,替代 [] 取值,代码更简洁;
嵌套支持:嵌套字典也能通过层级属性访问(如 d.foo.bar);
兼容原生字典:保留字典的所有原生方法(如 keys()、items()、update()),无使用成本
推荐将字典的该问方式改变成类访问属性的方式
fromeasydictimportEasyDictasedict
d = edict({'foo':3, 'bar':{'x':1, 'y':2}})
d.foo# 3
d.bar.x# 1
d = edict(foo=3)
d.foo# 3
也可以解析json
>>>fromeasydictimportEasyDictasedict
>>>fromsimplejsonimportloads
>>>j = """{
"Buffer": 12,
"List1": [
{"type" : "point", "coordinates" : [100.1,54.9] },
{"type" : "point", "coordinates" : [109.4,65.1] },
{"type" : "point", "coordinates" : [115.2,80.2] },
{"type" : "point", "coordinates" : [150.9,97.8] }
]
}"""
>>>d = edict(loads(j))
>>>d.Buffer
12
>>>d.List1[0].coordinates[1]
54.9
也可以
>>>classFlower(EasyDict):
... power = 1
...
>>>f = Flower({'height': 12})
>>>f.power
1
>>>f['power']
1
可以将项目配置文件(如 JSON/YAML 解析后的字典)通过 EasyDict 访问,配置项更直观
当遇到一个陌生的python第三方库时,可以到pypi或github查看readme快速入门,官网:
https://github.com/makinacorpus/easydict