合并字典和对象api的简单类

dictns的Python项目详细描述


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

合并字典和对象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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java比较数据源中的行以打印特定记录   Java HashMap键值存储和检索   java使用Xugler实现MXF到FLV   将自定义字体设置为aspose Word java不起作用   java为什么示例1不合法而示例2合法?   无法解析java eclipse类型   java NativeScript:将本机安卓项目添加到NativeScript   java DAO函数,通过字符串concat将变量填充到SQL查询中,而不是使用var args和命名查询   java Ctrl+箭头键、多字变量名和eclipse pydev   java BufferReader显然没有从socket接收数据。简单聊天服务   java Spring启动版本从2.0.1升级到2.1.6,使URL“受保护”   java在iTextPDF中将粗体设置为自定义字体   java程序持续运行,但从未实际执行任何操作   spring boot如何使JWTfilter身份验证服务MS对java sts中不同n个微服务的n个数字请求通用   java Vaadin日期验证,2个或更多验证程序   svn贾瓦尔。无法使用我的java应用程序提交   excel Java Apache POI HSSF CellRangeAddressList   java意外标记左大括号({)位于位置4   java需要创建一个大型应用程序。使用ApachePOI的xls电子表格,堆内存使用有限   [Java][Eclipse]NoClassDefFoundError/ClassNotFoundException>>>ObjectMapper