更多的点!点访问python命令,如javascript
mo-dots的Python项目详细描述
更多的点!
Branch | Status |
---|---|
master | |
dev |
概述
这个库定义了一个Data
类,它可以作为dict
的替换,并具有其他特性。
>>> from mo_dots import wrap, Data
有关mo-dots
易于定义
使用命名参数定义Data
,就像dict
>>> Data(b=42, c="hello world")
Data({'b': 42, 'c': 'hello world'})
也可以包装现有的^ {< CD2>}s,这样它们就可以像^ {CD1>}
一样使用。>>> wrap({'b': 42, 'c': 'hello world'})
Data({'b': 42, 'c': 'hello world'})
点访问
使用属性点访问属性:a.b == a["b"]
。你可能以前见过这个。
路径访问
通过点分隔路径访问属性。
>>> a = wrap({"b": {"c": 42}})
>>> a["b.c"] == 42
True
安全通道
如果一个属性不存在,则返回^ {< CD9>},而不是引发错误。
>>> a = Data()
a == {}
>>> a.b == None
True
>>> a.b.c == None
True
>>> a[None] == None
True
路径分配
无需制作中间dicts
>>> a = Data()
a == {}
>>> a["b.c"] = 42 # same as a.b.c = 42
a == {"b": {"c": 42}}
路径累积
使用+=
添加到属性;默认值为零(0
)
>>> a = Data()
a == {}
>>> a.b.c += 1
a == {"b": {"c": 1}}
>>> a.b.c += 42
a == {"b": {"c": 43}}
使用带有列表([])的+=
附加到列表;默认空列表([]
)
>>> a = Data()
a == {}
>>> a.b.c += [1]
a == {"b": {"c": [1]}}
>>> a.b.c += [42]
a == {"b": {"c": [1, 42]}}
在python中转换json数据
这个库是数据转换代数的基础:我们需要一种用python转换数据的简洁方法。我们希望对数据的操作产生更多的数据。我们不希望数据操作引发异常。这个库解决了python在操作数据对象时在点(.
)和切片[::]
运算符下缺乏一致性(缺少闭包)的问题。