在上一期文章中我们一起学习了在Python中如何使用jsonpath库,中J增删作对JSON格式数据结构进行常规的结据节点条件查询,可以满足日常许多的构数高效改操数据处理需求。 而在上一期结尾处,中J增删作我提到了还有其他JSONPath功能相关的结据进阶Python库,在今天的构数高效改操文章中,我就将带大家学习更加高级的中J增删作JSON数据处理方式。 jsonpath-ng是一个功能强大的Python库,它整合了jsonpath-rw、构数高效改操jsonpath-rw-ext等第三方JSONPath拓展库的中J增删作实用功能,使得我们可以基于JSONPath语法,结据实现更多操纵JSON数据的构数高效改操功能,而不只是中J增删作查询数据而已,使用pip install jsonpath-ng进行安装: jsonpath-ng中设计了一些方法,可以帮助我们实现对现有JSON数据的构数高效改操增删改操作,云服务器提供商首先我们来学习jsonpath-ng中如何定义JSONPath模式,并将其运用到对数据的匹配上,依然以上篇文章的数据为例: 而基于上面产生的一些对象我们就可以实现对JSON数据的增删改: 在jsonpath-ng中对JSON数据添加节点,思想是先构造对「原先不存在」的节点进行匹配的解析器对象,利用find_or_create方法处理原始JSON数据: 在find_or_create操作之后,demo_json就被修改成下面的结果: 接下来的事情就很简单了,只需要在matches结果中进行遍历,遇到value属性为{ }的,就运用full_path.update_or_create()方法对原始JSON数据进行更新即可,比如这里我们填充999: 当我们希望对JSON数据中指定JSONPath规则的节点予以删除时,可以使用到parse对象的filter()方法传入lambda函数,在lambda函数中进行条件判断,返回的即为删除指定节点之后的输入数据。 以上一步「增」操作后得到的demo_json为例,我们来对其level1[*].level2.level3值为999的予以过滤: 可以看到结果正是我们所预期的: 对JSON数据中的指定节点进行改操作非常的简单,只需要使用parse对象的update或update_or_create方法即可,使用效果的区别如下所示,轻轻松松就可以完成两种策略下的节点更新操作😋: jsonpath-ng中还有一些丰富的功能,这里就不再赘述,感兴趣的读者朋友可以前往https://github.com/h2non/jsonpath-ng查看。源码下载 1 简介
2 基于jsonpath-ng的结据进阶JSON数据处理方法
2.1 JSON数据的结据增删改
2.1.1 对JSON数据进行增操作
2.1.2 对JSON数据进行删操作
2.1.3 对JSON数据进行改操作