遇到个问题:
如果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))
-------------------------------------------------------------------------------------------------------------------------------------
---
开心工作,认真生活;回望来时路,脚印三两,笑声无数...
开心工作,认真生活;回望来时路,脚印三两,笑声无数...
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 开箱你的 AI 语音女友「GitHub 热点速览」
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(二):用.NET IoT库
· 几个自学项目的通病,别因为它们浪费了时间!
· C#钩子(Hook) 捕获键盘鼠标所有事件 - 5分钟没有操作,自动关闭 Form 窗体
· 特斯拉CEO埃隆.马斯克的五步工作法,怎么提高工程效率加速产品开发?