跳转到主要内容

简单地将字典和对象API合并的类

项目描述

https://travis-ci.org/tardyp/dictns.png?branch=master

简单的Python类,用于合并字典和对象API

这些命名空间对象的工作方式类似于JavaScript对象。旨在帮助处理深层JSON对象,并在您的代码中节省大量的[‘’]

用法

from dictns import Namespace
n = 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子类,如OrderedDict,但生成的命名空间不继承原始对象特征(即OrderedDict中的顺序)

请参阅单元测试以获取更多用法示例

变更日志

  • 1.0:初始版本

  • 1.1:添加命名空间比较工具

  • 1.2:命名空间现在支持作为输入的dict和list子类

  • 1.3:
    • 修复与getattr()内置方法的兼容性问题。当请求无效键时,现在会引发AttributeError而不是KeyError。

    • 允许无参数初始化:Namespace()等价于Namespace({})。

  • 1.4:允许命名空间对象被弱引用

  • 1.5:
    • 修复3.5和pypy的测试

    • 清理README

开发

启动单元测试

python test/test_namespace.py

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分发

dictns-1.5.tar.gz (5.2 kB 查看哈希值)

上传时间: 源代码

构建分发版

dictns-1.5-py2.py3-none-any.whl (5.5 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下机构支持