浅尝ChatGPT使用之Python字典嵌套排序

一、背景

所负责的项目从v1.0升级到v2.0之后,发送到kafka的Json数据字段顺序和内容有所改变,
v1.0版本推送数据样例:

{"name": "小王子","author": "安托万·德·圣-埃克苏佩里(1900-1944)","platform": "京东","detailinfo": {"commodity code": "12157218","published date": "2017-02-01","published house": " 浙江文艺出版社","number of pages": 208},"content": "遥远星球上的小王子,与美丽而骄傲的玫瑰吵架负气出走,在各星球漫游中,小王子遇到了傲慢的国王,一个任性的酒鬼,一个唯利是图的商人,一个死守教条的地理学家,而后来到地球上,试图找到治愈孤独和痛苦的良方。这时,他遇到一只渴望被驯养的狐狸,于是奇妙而令人惊叹的事情发生了","price": 26.5
}

v2.0版本推送数据样例:

{"name": "小王子","author": "安托万·德·圣-埃克苏佩里(1900-1944)","content": "遥远星球上的小王子,与美丽而骄傲的玫瑰吵架负气出走,在各星球漫游中,小王子遇到了傲慢的国王,一个任性的酒鬼,一个唯利是图的商人,一个死守教条的地理学家,而后来到地球上,试图找到治愈孤独和痛苦的良方。这时,他遇到一只渴望被驯养的狐狸,于是奇妙而令人惊叹的事情发生了","detailinfo": {"published house": " 浙江文艺出版社","published date": "2017-02-01","commodity code": "12157218","number of pages": 208},"Price": 26.5,"platform": "京东"
}

为了方便diff出两个版本的数据差异,需要先对字典数据进行排序

二、需求

如何用Python3实现一个嵌套字典排序?

三、实现

3.1 实现思路

  1. 自己编程实现:呃呃~,对于一个菜鸟测试人员来说,这不是为难我嘛
  2. 搜索引擎上查查资料: 搜索结果五花八门,看着头大
  3. ChatGPT: 听说ta写代码能力很在行,今天试试看,说干就干

3.2 具体实现

流程图:
在这里插入图片描述

ChatGPT问答结果
在这里插入图片描述

def recursive_dict_sort(dictionary):if isinstance(dictionary, dict):return {k: recursive_dict_sort(v) for k, v in sorted(dictionary.items())}elif isinstance(dictionary, list):return [recursive_dict_sort(v) for v in dictionary]else:return dictionary

完整程序代码:

import jsondef recursive_dict_sort(dictionary):if isinstance(dictionary, dict):return {k: recursive_dict_sort(v) for k, v in sorted(dictionary.items())}elif isinstance(dictionary, list):return [recursive_dict_sort(v) for v in dictionary]else:return dictionarydef read_data():with open('data_before_sort.json', 'r') as data_file:data = json.load(data_file)return dataif __name__ == '__main__':kafka_data =  read_data()res = recursive_dict_sort(kafka_data)res = json.dumps(res,indent=4, ensure_ascii=False)  #格式化json输出with open('data_after_sort.json', 'w', encoding='utf-8') as f:f.writelines(res)print(res)

四、效果

排序前diff:
在这里插入图片描述
排序后diff:
在这里插入图片描述
进行diff,惊喜发现,price中的p字母,两个版本大小写不一致,喜提一个bug

五、收益

diff发现两个版本字母大小写不一致问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46497.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Smart Client 高级开发(微软讲座下载)

出处: http://www.microsoft.com/china/msdn/events/featureevents/2004/SmartClientSeminar/index.aspx 经过设计,智能客户端应用程序可以将胖客户端应用程序的优点与瘦客户端应用程序的部署和可管理性优点结合起来,然而,要完全实现智能客户…

一文读懂微软转型秘诀

关注ITValue,看企业级最新鲜、最价值报道! 新眸出品 作者|叶静 编辑|桑明强 微软一直在试图转化新的角色。 相较云服务、生产力和个人计算三驾主力马车,游戏业务对微软的营收贡献并不大,但年初以687亿美元全…

Adtributor: Revenue Debugging in Advertising Systems 微软论文翻译

前言 毕设在做异常点检测与根因分析,就拿微软14年的文章作为主要参考文献了,这里把中文的翻译以及一些整理一起放在博客里,以作分享交流。 Adtributor: 广告系统中的收入调试 作者:Ranjita Bhagwan, Rahul Kumar, Ramachandran…

一起谈.NET技术,微软 Share Point 2010 企业应用解决方案

SharePoint 2010功能及改进 SharePoint 2010分为两个版本SharePoint Foundation 2010和SharePoint Server 2010,其中SharePoint Foundation 2010是WSS 3.0的升级,而SharePoint Server 2010则是MOSS 2007的升级(文中如无特别说明则SharePoint 2010是二者统…

免费ChatPPT来了/ 首例数字人侵权案判了/ 微软总裁炮轰英国...今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好,今天是4月28日星期五,终于,终于到了这一天。 还是照例送上科技圈新鲜事与最新AI工具推荐。 首例涉虚拟数字人侵权案 杭州互联网法院公众号披露了首例涉虚拟数字人侵权案判决结果。 由魔珐公…

微软 Share Point “.NET研究”2010 企业应用解决方案

SharePoint 2010功能及改进 SharePoint 2010分为两个版本SharePoint Foundation 2010和SharePoint Server 2010,其中SharePoint Foundation 2010是WSS 3.0的升级,而SharePoint Server 2010则是MOSS 2007的升级(文中如无特别说明则SharePoint 2010是二者统…

IT行业程序员工资一般多少?发量与薪资成反比

IT行业程序员工资一般多少?发量与薪资成反比?很多IT男由于长期熬夜,搞研发会脱发,越资深的程序员发量越稀疏,看技术水平大概可以通过发量来初步鉴别一下。IT行业程序员工资高付出也很多,比如长期加班熬夜改…

程序员的工资高,到底程序员的工资有多高?那些你不了解的程序员

都说程序员的工资高,程序员工资是不是过高? 如果和国内和其他职业横向比较,是的,局部过高。全世界和其他程序员(主要是美帝)比,不是,太低。互联网是不是毒瘤?以后优秀的…

智公网:教师招聘考试题目与答案

一、试题 1.研究性学习强调( )。(单选) A.以学生为主 B.以书本为主 C.以教师为主 D.以课堂为中心 2.关于我国新课程改革,下列说法错误的是( )。(单选) A.增强课程内容的生活化、综合性 B.旨在扭转以“知识授受”为特征的教学局面 C.不是单一的教材改革&…

DataFun: ChatGPT背后的模型详解

ChatGPT背后的模型详解 Overview Transofrmer 各个构件都有一定的作用 Multi-head self attention 每个字的重要性不一样,学习QKV三个矩阵(query,key,value) 多组QKV RLHF ChatGPT训练过程 思维链 COT

自己做量化交易软件(18)小白量化平台

自己做量化交易软件(18)小白量化平台 小白量化平台框架是本地化量化平台,用户的策略在用户自己电脑中执行,操作习惯仿股票软件,指标算法支持类通达信指标,回测也支持通达信大智慧等自定义股票格式。 小白量化平台框架是跨平台的&…

一位从事量化交易的实战者,手把手带你入门量化交易!

大数据文摘出品 来源:quantstart 编译:LYLM、笪洁琼 本文作者是一位从事量化交易的实战者,他将他的实战心得写成一个量化交易系列,本篇则是系列的第一篇,从文中你会对整个量化交易的框架、流程、以及策略思路的来源地都…

自己做量化交易软件(38)小白量化实战11--双向高频马丁交易策略

自己做量化交易软件(38)小白量化实战11–双向高频马丁交易策略 上一篇文章我们介绍了做多的马丁策略,见文章<自己做量化交易软件(37)小白量化实战10–操作方法与MetaTrader5高频策略的进化>. 这一篇介绍双向高频马丁交易策略,也就是说能够多空两个方向的开单策略. 小白量…

自己做量化交易软件(22)小白量化之MetaTrader5自动交易1

自己做量化交易软件(22)小白量化之MetaTrader5自动交易1 小白量化框架源代码是《零基础搭建量化投资系统――以Python为工具》的随书演示代码. 作者其中之一杨老师利用小白量化系统参加外汇期货实战比赛,取得了8天获利860%的战绩. 我看了这个战绩,我从心里羡慕、嫉妒、外加眼…

微信客服后台SDK

微信客服后台SDK功能介绍 微信客服回调自动获取客户在微信发送给客服的消息并入库发送客服消息自动发动客服欢迎语获取客户基础信息并入库获取客服帐号列表添加客服帐号修改客服帐号删除客服帐号获取客服帐号链接上传临时素材&#xff08;需等待ivx后台文件接口支持file对象&a…

微信开发之客服消息的使用

之前的消息发送与接收都是用户给微信发一条&#xff0c;之后微信回复给用户&#xff0c;也就是API上面所说的被动回复消息&#xff0c;那么微信是否支持主动给关注用户发消息吗&#xff0c;答案是肯定的&#xff0c;但是却有一些限制。看下微信开发文档上怎么说就明白了&#x…

最新30万字312道Java经典面试题52道场景题总结(附答案PDF)

最近有很多粉丝问我&#xff0c;有什么方法能够快速提升自己&#xff0c;通过阿里、腾讯、字节跳动、京东等互联网大厂的面试&#xff0c;我觉得短时间提升自己最快的手段就是背面试题&#xff1b;花了3个月的时间将市面上所有的面试题整理总结成了一份30万字的300道Java高频面…

CAD必练图形

这次我们用CAD梦想画图软件绘制一个CAD新手必练图形&#xff0c;它用到的有CAD矩形、直线、圆弧、等分等命令结合起来完成绘制的&#xff0c;可以跟着一起操作一下。 目标图形 操作步骤 1.使用CAD矩形命令&#xff08;快捷键&#xff1a;REC&#xff09;绘制一个长80宽30的矩形…

将CAD图纸中的线型和文字样式合并的方法技巧(一)

在使用浩辰CAD软件绘制CAD图纸的过程中&#xff0c;很多CAD制图初学入门者不太了解如何把CAD图纸中的线型和文字样式合并&#xff0c;虽然图层中提供了图层合并功能&#xff0c;但是线型和文字样式却并没有&#xff0c;其实如果想实现这个功能&#xff0c;可以通过CAD的标准检查…

图片转cad用什么软件?转换有技巧

在工程和建筑行业中&#xff0c;CAD已经成为了必不可少的工具&#xff0c;它可以提高设计效率并减少错误。但是&#xff0c;有时候我们需要将手绘图或者图片转换为CAD文件&#xff0c;因为这些图像可能是原始设计的基础&#xff0c;或者是为了方便修改和编辑而需要转换的。在这…