【python】如何去编写一个对比json字符串的工具

简介: 【python】如何去编写一个对比json字符串的工具

前言:

日常工作中对借口进行测试时候,有时候会对一个接口进行版本迭代;

可能对同一个功能来说,老版本使用老接口,新版本就是用新接口;

对单一接口进行接口测试来说是没有什么可说的了,我们可以使用assert对结果数据进行断言,

但是我们并不清楚新老接口使用相同的入参,返回的结果是否有差异,毕竟后面的业务可能对返回字段的取值逻辑可能相同页可能不同!我们能做的就是新接口可以兼容老接口。

这就需要我们想办法怎么对新老接口的返回数据进行比对(入参相同),并且将有差异的地方进行输出,方便我们统计和处理!

使用json模块就可以达到我们目前的目的:

直接上代码:

首先先给定两个已知的,待对比的内容:

compare_json_data.py

class TestDiffJson():
    def test_old_data(self):
        _old_data = {
            "key1": "value1",
            "key2": "value2",
            "key3": [1],
            "object": {
                "object_key1": "object_value2",
                "object_key2": {
                    "sub_key": "object_key2_sub_value",
                    "sub_key3": {"xx": 1},
                    "sub_key4": {"xx": 1}
                },
                "object_key3": [
                    {"list_sub_key1": "xx"},
                    {"list_sub_key2": "xx"}
                ]
            },
            "x": 1.2
        }
        return _old_data
    def test_new_data(self):
        _new_data = {
            "key1": "value1",
            "key2": "value2",
            "key3": (1,),
            "object": {
                "object_key1": "object_value1",
                "object_key2": {
                    "sub_key": "object_key2_sub_value",
                    "sub_key2": {"xx": 1},
                    "sub_key3": "test"
                },
                "object_key3": [
                    {"list_sub_key1": "xx"},
                    {"list_sub_key2": []}
                ]
            },
            "x": 1.2
        }
        return _new_data

本来只做了差别对比并输出,后面想想如果可以忽略掉一些字段比对的差异,就更完美了,毕竟有些数据时刻变化(比如时间戳)我们是不需要去关注。

<

相关文章
|
12天前
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
63 4
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
22天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
55 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
33 2
|
2月前
|
C语言 开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第21天】在Python的世界里,代码的优雅与效率同样重要。列表推导式(List Comprehensions)作为一种强大而简洁的工具,允许开发者通过一行代码完成对列表的复杂操作。本文将深入探讨列表推导式的使用方法、性能考量以及它如何提升代码的可读性和效率。
|
2月前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
58 7
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
52 2
|
2月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
46 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
2月前
|
JSON 数据格式
用来返回Json数据格式的工具--通用类
用来返回Json数据格式的工具--通用类
19 1