zoukankan      html  css  js  c++  java
  • 递归对比json

    遇到个问题:

    如果list中是dic,sort会报错,解决办法:sorted(a,key=lambda x:x["x"])

    def compare_data(src_data, dst_data):
        if isinstance(src_data, dict):
            """若为dict格式"""
            for key in dst_data:
                if key not in src_data:
                    print("src不存在这个key")
            for key in src_data:
                if key in dst_data:
                    # thiskey = key
                    """递归"""
                    compare_data(src_data[key], dst_data[key])
                else:
                    print("dst不存在这个key")
        elif isinstance(src_data, list):
            """若为list格式"""
            if len(src_data) != len(dst_data):
                print("list len: '{}' != '{}'".format(len(src_data), len(dst_data)))
                compare_flag = 0
            sort_key = ''
            for key in src_data[0]:
                sort_key = key
            for src_list, dst_list in zip(sorted(src_data,key=lambda x:x["%s" % sort_key]), sorted(dst_data,key=lambda x:x["%s" % sort_key])):
                """递归"""
                compare_data(src_list, dst_list)
        else:
            if str(src_data) != str(dst_data):
                print("%s != %s, 比对失败" % (src_data, dst_data))

    参考:

    https://blog.csdn.net/zyk123zrx/article/details/83055947

    https://zhidao.baidu.com/question/494397854859559132.html

    -------------------------------------------------------------------------------------------------------------------------------------

    找到个现成的模块,可不用重复造轮子:https://blog.csdn.net/qq_27884799/article/details/93904318

    pip install jsoncomparedeep

    from json_compare import Jcompare
    cp = Jcompare()
    a = {"k1":"v1","k2":["v1", "v3"]}
    b = {"k1":"v1","k2":["v4", "v1"]}
    print(cp.compare(a, b))

    -------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    concate string when group by
    Regular Expression
    Login failed for user
    SQL Performance Tools
    Web References
    ARTetris-AR版俄罗斯方块的源码解析
    ARKit_1
    链表
    线性表
    ORB-SLAM2的特征提取算法
  • 原文地址:https://www.cnblogs.com/dannyyao/p/12266350.html
Copyright © 2011-2022 走看看