当前位置: 首页 > news >正文

浅尝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.lryc.cn/news/65065.html

相关文章:

  • 最大网络流算法之dinic算法详解
  • 051、面试必刷TOP101--链表(230503)
  • 开源中国面试准备
  • 基于J2EE的B2C电子商务系统开发与实现
  • 三分钟教你看懂 spring 官方文档
  • 基于simulink使用射频模块集天线块对天线阵列的射频系统进行建模
  • 从小学习编程的路线与编程进阶
  • [实训] 实验1-SPI数据传输基础实验(上)
  • 微软骚操作恶心Win10用户,上网得先看广告
  • 为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展
  • 洛谷 子集积 题解
  • Boost笔记 1:下载、编译、安装、测试
  • tiechui_lesson01_入口函数和卸载函数
  • 密码学【java】初探究加密方式之非对称加密
  • 网络安全和黑客技能:15本必读书籍推荐
  • 电话号码的字母组合
  • PAT A1032 Sharing
  • Git常见问题汇总
  • 设计模式之代理模式(静态代理动态代理)
  • Java并发编程基础知识概述
  • Redis超详细入门手册教程!还不快来看看?
  • 代码随想录算法训练营第四十九天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
  • 零基础如何学习挖漏洞?看这篇就够了【网络安全】
  • Twitter 推荐算法底有多牛? 已斩获11.7K star
  • 看过这篇文章,读懂数据分析
  • [计算机图形学]光场,颜色与感知(前瞻预习/复习回顾)
  • L4公司进军辅助驾驶,放话无图也能跑遍中国
  • 【Java笔试强训 17】
  • 【IPv6】基本概念及字段
  • 数据库中的 Schema 变更实现