扩展程序

jsonpath-rw-ext的Python项目详细描述


https://travis-ci.org/sileht/python-jsonpath-rw-ext.png?branch=masterLatest VersionDownloads

jsonpath rw的扩展名

json path rw ext通过添加多个扩展扩展扩展了json path rw功能。 “len”,它允许用户获取列表的长度。返回排序版本的“sorted” 允许在元素和之间进行数学运算的“算术”列表。 “filter”只选择列表中的某些元素。

每个扩展将被提议upstream 只有在他们被拒绝的情况下才会留在这里。

快速启动

在命令行:

$ 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的一部分,因为 可以更改将在上游实现它们的时间。只有语法不应该 改变。

扩展名

nameExample
len
  • $.objects.`len`
sub
  • $.field.`sub(/foo\+(.*)/, \1)`
split
  • $.field.`split(+, 2, -1)`
  • $.field.`split(sep, segement, maxsplit)`
sorted
  • $.objects.`sorted`
  • $.objects[\some_field]
  • $.objects[\some_field,/other_field]
filter
  • $.objects[?(@some_field > 5)]
  • $.objects[?(some_field = “foobar”)]
  • $.objects[?(some_field ~ “regexp”)]
  • $.objects[?(some_field > 5 & other < 2)]
arithmetic (-+*/)
  • $.foo + “_” + $.bar
  • $.foo * 12
  • $.objects[*].cow + $.objects[*].cat

关于算术和字符串

操作是用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]

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

推荐PyPI第三方库


热门话题
JavaSpringbean已创建但未自动连接   java LibGDX游戏在三星Galaxy Grand Prime上结束   如何在Java中列出字符串句子中所有匹配条件的单词   java在Recyclerview中使用“putExtra”传递数据   java从一个特定的数组中提取特定的JSON对象,以便在Android中通过一个意图放入另一个活动   java需要使用IntelliJ和设置项目SDK的帮助   java springcontextindexer和Swagger 3   java使用indexOf和substring计算数字   java使用xml解析在word文档中查找隐式分页符   在添加<context:componentscan basepackage=“com.young.user”/   java无条件更改JTable单元格的背景色   选择列表中的java调用oracle函数:节点无数据类型   java如何添加缓冲图像作为JFrame的背景,然后在此图像上添加面板?   java Javadoc找不到用scala编写的类   java连接到文件共享程序的IP地址   java将数组元素加载到集合中   Tomcat中的java servlet、过滤器和线程   非Bean对象中的java EJB CDI注入?   java与println和printf的不同舍入