作为属性访问dict值(递归工作)。

easydict的Python项目详细描述


easydict允许访问dict值作为属性(递归工作)。 python dict的类似javascript的属性点表示法。

用法

>>> from easydict import EasyDict as edict
>>> d = edict({'foo':3, 'bar':{'x':1, 'y':2}})
>>> d.foo
3
>>> d.bar.x
1

>>> d = edict(foo=3)
>>> d.foo
3

在利用解析的json内容时非常有用!

>>> from easydict import EasyDict as edict
>>> from simplejson import loads
>>> 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

可以像获取属性一样轻松地设置属性:

>>> d = EasyDict()
>>> d.foo = 3
>>> d.foo
3

它仍然是一个dict

>>> d = EasyDict(log=False)
>>> d.debug = True
>>> d.items()
[('debug', True), ('log', False)]

实例和类属性的访问方式与通常的对象类似…

>>> class Flower(EasyDict):
...     power = 1
...
>>> f = Flower({'height': 12})
>>> f.power
1
>>> f['power']
1

许可证

  • 较小的GNU公共许可证

作者

makinacom

类似工具

更改日志

1.9(2018-10-18)

  • 修正更新和弹出的问题3现在可以在easydicts上正常工作。

1.8(2018-08-17)

  • 更新包分类器。

1.7(2017-04-27)

  • 防止在分配任务时复制子EasyDicts以修复取消勾选(7,谢谢@chronos sk)

1.6(2015-01-27)

  • 允许通过设置项目设置属性(感谢Phivos)

1.5(2014-08-07)

  • 允许使用self代替类名进行子类化(感谢steve engledow)

1.4(2011-03-13)

  • 访问类属性,如实例属性

1.3(2012-02-08)

  • 更好的文档和测试

1.2(2011-06-08)

  • 修复自述文件的包含

1.1(2012-04-21)

  • 切换到distutils2

1.0(2011-04-18)

  • 初始工作版本

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

推荐PyPI第三方库


热门话题
当使用RequestDispatcher时,servlets Java最终没有被调用   java生成对具有可变参数数的方法的调用   java如何使用select子句中的参数化列映射iBATIS的查询?   java无法创建类型为org的插件。阿帕奇。登录中。log4j。果心阿佩德。元素RollingFile的RollingFileAppender   java当子实体和父实体之间存在OneTONE JPA关系时,是否可以将其与父实体一起持久化?   Android上的java Facebook集成fbconnect断开链接   获取方法调用方的java机制   从列表创建Oracle阵列时出现java问题   添加和检索元素的ArrayList的java ArrayList   在java中从字符串中删除无效的XML字符   java如何构建完整生成的maven模块   java如何准确地改变播放所有分辨率midi文件的速度?   shell javac:无效标志:/src/中位_度。ubuntu中的java   java使用从其他类的方法检索到的信息