还在手动排JSON数组?Python一行sorted让你爽到飞起
能被运用的内置函数(), 借助指定排序键, 针对JSON里的特定对象开展排序。当处理JSON数据之际, 我们常常要针对其中的对象予以排序, JSON是一种轻量级的数据交换格式, 它易于人去阅读以及编写, 并且还易于机器进行解析与生成, 我们会探讨怎样从JSON里排序特定对象, 还会提供一些实用的技巧以及示例。一、理解JSON结构我们要知晓JSON的基本架构, JSON主要涵盖两种架构构成: 对象以及数组, 对象乃是被花括号所环绕的键值对组合, 而数组却是由方括号所包围的的值的有顺序列表, 在JSON里, 我们能够运用这些架构来呈现错综复杂的数据。以下是一个包含多个学生信息的JSON对象{ students: [ {name: Alice, age: 23, grade: B}, {name: Bob, age: 21, grade: A}, {name: Charlie, age: 22, grade: C} ] }在这个存有实例的情况里, 我们具备一个有着特殊名称的数组, 此数组当中容纳着了涵盖三位学生信息的内容, 每一个学生的相关讯息皆为一个对象, 这些对象所保有包含的是学生的姓名, 以及处于不同阶段的年龄, 最后还有体现学习成果的成绩。二、排序JSON对象要针对JSON里的对象予以排序, 我们能够运用编程语言所提供的排序函数以其为示例之时, 我们能够借助内置的()函数, 或者来列表对象的sort()方法, 从而就针对JSON里的对象开展排序操作哟。1. 使用()函数()函数能够返回一个全新的列表, 该列表里的元素是依照指定的排序规则予以排列的。我们能够把JSON中的数组当作参数传送给 ()函数, 并且指定一个排序的key函数去实现自定义的排序逻辑。如果我们想按照学生的年龄对学生进行排序我们可以这样做import json 假设json_data是我们上面定义的JSON字符串 json_data {students: [{name: Alice, age: 23, grade: B}, {name: Bob, age: 21, grade: A}, {name: Charlie, age: 22, grade: C}]} 将JSON字符串转换为Python字典 data json.loads(json_data) 使用sorted()函数按照年龄对学生进行排序 sorted_students sorted(data[students], keylambda x: x[age]) 打印排序后的学生信息 print(json.dumps({students: sorted_students}, indent4))输出将是{ students: [ { name: Bob, age: 21, grade: A }, { name: Charlie, age: 22, grade: C }, { name: Alice, age: 23, grade: B } ] }于这个例子里头, 我们采用了()函数针对学生实施了升序排序, 要是有进行降序排序的需求, 我们能够在()函数当中增添True参数。2. 使用列表的sort()方法在使用括号函数之外, 我们能够运用列表对象的排序方法, 来针对JSON里的对象予以排序, 和括号函数不一样的是, 排序方法将会直接改变原本的列表, 并非返回一个全新的列表。假设我们期望依据学生的成绩, 来对学生实施降序排序这种操作, 那么我们能够采取如下这般如此的做法:使用sort()方法按照成绩对学生进行降序排序 data[students].sort(keylambda x: x[grade], reverseTrue) 打印排序后的学生信息 print(json.dumps({students: data[students]}, indent4))输出将是{ students: [ { name: Bob, age: 21, grade: A }, { name: Alice, age: 23, grade: B }, { name: Charlie, age: 22, grade: C } ] }在这个例子当中, 我们运用了sort()方法, 对学生实施了降序排序, 需要留意的是, sort()方法会对原列表作出修改, 所以在使用之际需要谨慎对待。三、复杂排序逻辑对学生排序时, 我们或许得依据多个字段来操作, 在此种情形下, 我们能够于排序的key函数内返回一个元组, 这个元组里含有我们期望排序所依据的多个字段的值, 是会按照元组里的第一个元素展开排序的要是第一个元素一样的话, 那就依据第二个元素来排序, 照这样依次类推下去。倘若我们期望先依据年纪对学生予以升序排列, 接着在年纪相同的情形下依照成绩进行降序排列, 那么我们能够如此去做:使用sorted()函数按照年龄和成绩对学生进行排序 sorted_students sorted(data[students], keylambda x: (x[age], -ord(x[grade][0]))) 打印排序后的学生信息 print(json.dumps({students: sorted_students}, indent4))在这个例子当中, 我们运用了 -ord(x) 来给学生的成绩开展降序排列, 由于字母的 ASCII 码值呈递增态势, 所以借助取负数能够达成降序排列的成效, 要留意的是, 此种办法仅适用于成绩只为单个字母的情形, 要是成绩是多个字母或者数字的组合, 我们就得采用别的办法来进行降序排列。

相关新闻

半导体IT体系化建设与一支球队的十年

半导体IT体系化建设与一支球队的十年

关于体系、能力与新陈代谢引子:两个真实片段 先说两个场景。场景一凌晨两点,MES系统宕机。全厂停线,每分钟损失数万元。唯一的资深工程师电话无人接听。其余的人围在屏幕前,没人知道第一步该做什么。直到三小时后那位工程师赶到&a…

2026/8/3 4:32:11 阅读更多 →
idea汉化

idea汉化

2024.2版本之后官方更改了汉化方式,直接软件内选择语言即可,无需进入插件市场下载汉化插件。

2026/8/4 6:23:49 阅读更多 →
leetcode 1681. 最小不兼容性

leetcode 1681. 最小不兼容性

Problem: 1681. 最小不兼容性 挺难的,动态规划的题目,不会做,看了题解的,还看了豆包给的答案 下面是参考豆包给的答案写的,做了一点优化的 先拿到所有小组,每个小组都是group_sz个数字 然后动态规划求解…

2026/8/3 4:32:10 阅读更多 →

最新新闻

HRP DSL 酶标曼陀罗凝集素在糖蛋白分布、细胞糖组表征领域科研应用汇总

HRP DSL 酶标曼陀罗凝集素在糖蛋白分布、细胞糖组表征领域科研应用汇总

基本性质 英文名称:HRP-Datura Stramonium Lectin (DSL), HRP-DSL 中文名称:HRP 标记的曼陀罗凝集素 来源物种:曼陀罗 (Datura stramonium) 种子 外观状态:固体粉末或溶液 储存条件:-20℃ 避光干燥保存(严禁…

2026/8/4 16:12:18 阅读更多 →
3分钟学会B站视频永久保存:m4s-converter跨平台无损转换工具完整指南

3分钟学会B站视频永久保存:m4s-converter跨平台无损转换工具完整指南

3分钟学会B站视频永久保存:m4s-converter跨平台无损转换工具完整指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站缓…

2026/8/4 16:12:18 阅读更多 →
OpenHands手势识别:从入门到工程优化

OpenHands手势识别:从入门到工程优化

1. OpenHands项目概述OpenHands是一个基于计算机视觉的手势识别开源项目,它能够通过普通摄像头实时检测和识别用户的手部动作。这个项目最初由卡内基梅隆大学的研究团队开发,旨在为开发者提供一套简单易用的手势交互解决方案。在实际应用中,我…

2026/8/4 16:12:18 阅读更多 →
国产楼宇自控系统哪家靠谱?

国产楼宇自控系统哪家靠谱?

一、为什么做智能化项目,业内都重点推荐裕乾?当下智慧建筑、园区节能、老旧楼宇改造市场需求持续上涨,很多工程总包、物业、政企业主在筛选系统集成供应商时,都会优先锁定裕乾。对比外资品牌与小型贴牌厂商,裕乾凭借自研技术、完…

2026/8/4 16:12:17 阅读更多 →
热-光耦合分析原理与工程实践指南

热-光耦合分析原理与工程实践指南

1. 热-光耦合分析的本质与工程价值 多物理场耦合仿真中的热-光耦合分析,本质上研究的是温度场与光场之间的相互作用机制。这种耦合效应在工程实践中极为常见——当光学元件工作时,其温度分布会改变材料折射率;而折射率变化又会反过来影响光路…

2026/8/4 16:12:17 阅读更多 →
Cursor Pro破解工具技术架构深度解析:从机器标识重置到多平台兼容的完整解决方案

Cursor Pro破解工具技术架构深度解析:从机器标识重置到多平台兼容的完整解决方案

Cursor Pro破解工具技术架构深度解析:从机器标识重置到多平台兼容的完整解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能…

2026/8/4 16:11:17 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →