安装

pip install json_tools

使用

输出导读:

上面的输出显示的是b相对于a的变化:

1) b和a都有键’rd’,但是b相对a键’rd’的值发生了变化,由原来的yanan变为Yanan,所以比较结果的list有{'replace': '/rd', 'value': 'Yanan', 'prev': 'yanan'}

其中replace标识发生变化的键,value标识变化后即当前该键的值,prev表示该键此前的值。

2) b相对于a没有city键,所以结果集中有{'remove': '/city', 'prev': 'zibo'}

3) b中的town相对于a,是新增的键,所以结果集中有{'add': '/town', 'value': 'taian'}

多层嵌套的对比

import json_tools

def json_diff(json_1, json_2):
result = json_tools.diff(json_1, json_2)
print(result) a = {"rd": "yanan", "pro": {"sh": "shandong", "city": ["zibo", "weifang"]}}
b = {"rd": "Yanan", "pro": {"sh": "shandong", "town": ["taian", "weifang"]}} json_diff(a, b)

结果:

[{'replace': '/rd', 'value': 'Yanan', 'prev': 'yanan'}, 
{'remove': '/pro/city', 'prev': ['zibo', 'weifang']},
{'add': '/pro/town', 'value': ['taian', 'weifang']}]

Python--json_tools用法的更多相关文章

  1. Python高级用法总结

    Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...

  2. python argparse用法总结

    转:python argparse用法总结 1. argparse介绍 argparse是python的一个命令行解析包,非常适合用来编写可读性非常好的程序. 2. 基本用法 prog.py是我在li ...

  3. Anaconda下载及安装及查看安装的Python库用法

    Anaconda下载及安装及查看安装的Python库用法 Anaconda 是一个用于科学计算的 Python 发行版,提供了包管理与环境管理的功能.Anaconda 利用 conda 来进行 pac ...

  4. python enumerate用法总结【转】

    enumerate()说明 enumerate()是python的内置函数 enumerate在字典上是枚举.列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enum ...

  5. Python高级用法

    Python高级用法 三元表达式 x = 10 y = 20 print(x if x > y else y) x = 100 y = 20 print(x if x > y else y ...

  6. Python import用法以及与from...import的区别

    Python import用法以及与from...import的区别 在python用import或者from...import来导入相应的模块.模块其实就是一些函数和类的集合文件,它能实现一些相应的 ...

  7. 预备知识-python核心用法常用数据分析库(上)

    1.预备知识-python核心用法常用数据分析库(上) 目录 1.预备知识-python核心用法常用数据分析库(上) 概述 实验环境 任务一:环境安装与配置 [实验目标] [实验步骤] 任务二:Pan ...

  8. python sorted用法

    python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等. sorted函数用法如下: sorted(data, cmp=None, key ...

  9. 转 python range 用法

    详细记录python的range()函数用法   使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的 ...

  10. python yield用法举例说明

    1  yield基本用法 典型的例子: 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到.1 2 3 5 8…… def fab(ma ...

随机推荐

  1. [学习笔记] 树链剖分(重链剖分) - 图论 & 数据结构

    树链剖分 树链剖分,用于解决一系列的树中链上问题的算法(数据结构).其实对于树链修改和树链求和问题可以使用更加方便的树上差分解决,但是对于像求树链最大(小)权值之类的更复杂的问题,差分就显得不够用了. ...

  2. USACO 23023DEC 题解

    LG LG9979 [USACO23DEC] Target Practice S code LG9980 [USACO23DEC] Flight Routes G sol 1 已知邻接矩阵求路径数奇偶 ...

  3. C语言操作时间函数time.ctime,实现定时执行某个任务小例子

    时间操作函数在实际项目开发中会经常用到,最近做项目也正好用到就正好顺便整理一下. 时间概述 由上图可知: 通过系统调用函数time()可以从内核获得一个类型为time_t的1个值,该值叫calenda ...

  4. kali常用配置

    用户须知 1.免责声明:本教程作者及相关参与人员对于任何直接或间接使用本教程内容而导致的任何形式的损失或损害,包括但不限于数据丢失.系统损坏.个人隐私泄露或经济损失等,不承担任何责任.所有使用本教程内 ...

  5. Win32 插入符光标跟随的打字小程序

    1.先创建插入符光标 在WM_CREATE消息中 LRESULT OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam) { HDC hdc = GetDC ...

  6. zabbix功能应用

    一.zabbix简介 1.zabbix概述 zabbix:是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,能够监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通 ...

  7. canfestival源码下载教程

    先进入官网的这个页面 https://canfestival.org/code.html.en 点击箭头所指的地方 选择日期最新的点击下载

  8. Android升 Androidx 语系切换失效

    背景: 一个很旧的Android项目,android升androidx 切换语系失败,debug的时候,传的语系值是对的,但是确实没有国际化效果 原因: 经过一番学习,原因是使用 implementa ...

  9. 效率跃升16倍!火山引擎ByteHouse助力销售数据平台复杂查询效率大幅提高

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群.   销售数据,是反映市场趋势.消费者行为以及产品表现的重要指标,也是企业做出精准决策的关键依据.因此,对销售数据 ...

  10. 1. Two Sum Go实现

    在数组中找到 2 个数之和等于给定值的数字,结果返回 2 个数字在数组中的下标. 1. 解法1 时间复杂度 O(n^2) 直接两次遍历所有节点,进行求和比较 代码如下: func twoSum(num ...