合并字典和对象api的简单类
dictns的Python项目详细描述
合并字典和对象api的简单python类
这些命名空间对象的工作方式与javascript对象类似。 旨在帮助解决深层json对象的问题,并在代码中节省大量的[''']
用法
fromdictnsimportNamespacen=Namespace(dict(a=1,b=3,c=dict(d=4)))assert(n['a']==n.a)assert(n['c']['d']==n.c.d)
您可以将dict和list包装在命名空间中
n=Namespace([dict(a=1,b=3,c=[dict(d=4)])])assert(n[0]['a']==n[0].a)assert(n[0]['c'][0]['d']==n[0].c[0].d)
您还可以包装dict子类,如orderedict,但是结果命名空间 不继承原始对象特征(即Order in OrderedDict)
有关更多用法示例,请参见单元测试
更改日志:
- 1.0:初始版本
- 1.1:添加了命名空间比较工具
- 1.2:命名空间现在支持dict和list子类作为输入
- 1.3:
- 修复与getattr()内置方法的兼容性。当请求无效密钥时 现在引发一个attributeerror而不是keyerror。
- allow initialization without arg:namespace()等同于namespace({})。
- 1.4:允许弱引用命名空间对象
- 1.5:
- 修复3.5和pypy的测试
- 自述文件清理
开发
启动单元测试:
python test/test_namespace.py