扩展程序
jsonpath-rw-ext的Python项目详细描述
jsonpath rw的扩展名
json path rw ext通过添加多个扩展扩展扩展了json path rw功能。 “len”,它允许用户获取列表的长度。返回排序版本的“sorted” 允许在元素和之间进行数学运算的“算术”列表。 “filter”只选择列表中的某些元素。
每个扩展将被提议upstream 只有在他们被拒绝的情况下才会留在这里。
- 免费软件:apache许可证
- 文档:https://python-jsonpath-rw-ext.readthedocs.org/en/latest/
- 来源:http://github.com/sileht/python-jsonpath-rw-ext
快速启动
在命令行:
$ pip install jsonpath-rw-ext
或者,如果安装了virtualenvwrapper:
$ mkvirtualenv jsonpath-rw-ext $ pip install jsonpath-rw-ext
将jsonpath_rw解析器替换为以下解析器:
import jsonpath_rw_ext jsonpath_rw_ext.parse("$.foo").find(...)
或:
from jsonpath_rw_ext import parser parser.ExtentedJsonPathParser().parse("$.foo").find(...)
只获取匹配值的快捷函数:
import jsonpath_rw_ext as jp print jp.match('$.cow[*]', {'cow': ['foo', 'bar'], 'fish': 'foobar'}) # prints ['foo', 'bar'] print jp.match1('$.cow[*]', {'cow': ['foo', 'bar'], 'fish': 'foobar'}) # prints 'foo'
jsonpath类不是公共api的一部分,因为 可以更改将在上游实现它们的时间。只有语法不应该 改变。
扩展名
name | Example |
---|---|
len |
|
sub |
|
split |
|
sorted |
|
filter |
|
arithmetic (-+*/) |
|
关于算术和字符串
操作是用python运算符完成的,并允许python 如果由于类型不兼容而无法执行操作,则允许并返回[]。
使用运算符时,必须完全定义jsonpath,否则 jsonpath rw ext无法知道表达式是字符串还是jsonpath字段, 在这种情况下,它将选择字符串作为类型。
数据示例:
{ 'cow': 'foo', 'fish': 'bar' }
cow+fish返回cowfish
$.cow+$.fish返回foobar
$.cow+“'+$.fish返回foo酒吧
$.cow+“\u”+fish返回foo-fish
关于算术和列表
如果两个列表的大小相同,则可以对它们使用算术运算。
数据示例:
{'objects': [ {'cow': 2, 'cat': 3}, {'cow': 4, 'cat': 6} ]}
$.objects[*].cow+$.objects[*].cat返回[6,9]