Python按照list dict key进行排序过程解析


Posted in Python onApril 04, 2020

在做项目的时候,遇到这样的数据:

"trends": [
        {
          "name": "Rick Gates",
          "promoted_content": null,
          "query": "%22Rick+Gates%22",
          "tweet_volume": 135732,
          "url": "http://twitter.com/search?q=%22Rick+Gates%22"
        },
        {
          "name": "#TheBachelorette",
          "promoted_content": null,
          "query": "%23TheBachelorette",
          "tweet_volume": 91245,
          "url": "http://twitter.com/search?q=%23TheBachelorette"
        },
        {
          "name": "#KremlinAnnex",
          "promoted_content": null,
          "query": "%23KremlinAnnex",
          "tweet_volume": 42654,
          "url": "http://twitter.com/search?q=%23KremlinAnnex"
        },
        {
          "name": "#LHHH",
          "promoted_content": null,
          "query": "%23LHHH",
          "tweet_volume": 35252,
          "url": "http://twitter.com/search?q=%23LHHH"
        }]

我需要做的就是根据tweet_volume的数值对trends里的元素进行排序。

实现代码:

把上面数据以字典的方式获取,相当于把取出的就是后面的列表,即

trends=[
        {
          "name": "Rick Gates",
          "promoted_content": null,
          "query": "%22Rick+Gates%22",
          "tweet_volume": 135732,
          "url": "http://twitter.com/search?q=%22Rick+Gates%22"
        },
        {
          "name": "#TheBachelorette",
          "promoted_content": null,
          "query": "%23TheBachelorette",
          "tweet_volume": 91245,
          "url": "http://twitter.com/search?q=%23TheBachelorette"
        },
        {
          "name": "#KremlinAnnex",
          "promoted_content": null,
          "query": "%23KremlinAnnex",
          "tweet_volume": 42654,
          "url": "http://twitter.com/search?q=%23KremlinAnnex"
        },
        {
          "name": "#LHHH",
          "promoted_content": null,
          "query": "%23LHHH",
          "tweet_volume": 35252,
          "url": "http://twitter.com/search?q=%23LHHH"
        }]

trends = sorted(trends,key = lambda e:e['tweet_volume'],reverse = True)

考虑到有些数据是NULL,因此需要提前做个处理,对于空的tweet_volume设置为0,完整代码:

for item in trends:
  if(item.get('tweet_volume') is None):
    item['tweet_volume'] = 0
  trends = sorted(trends,key = lambda e:.get('tweet_volume') ,reverse = True)

建议用get方式获取,空值或数据不存在这样不会报错。

在Python文档中看到一种性能更高的方法

通过使用 operator 模块的 itemgetter 函数,可以非常容易的排序这样的数据结构

因此上面的程序可以改写成

from operator import itemgetter
for item in trends:
  if(item.get('tweet_volume') is None):
    item['tweet_volume'] = 0
trends = sorted(trends,key = itemgetter('tweet_volume'),reverse = True)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python发送邮件功能示例【使用QQ邮箱】
Dec 04 Python
python模拟登陆,用session维持回话的实例
Dec 27 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
python线程的几种创建方式详解
Aug 29 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
Python特殊属性property原理及使用方法解析
Oct 09 Python
python编程项目中线上问题排查与解决
Nov 01 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 Python
Django高并发负载均衡实现原理详解
Apr 04 #Python
Django调用支付宝接口代码实例详解
Apr 04 #Python
基于python检查SSL证书到期情况代码实例
Apr 04 #Python
python zip,lambda,map函数代码实例
Apr 04 #Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 #Python
150行Python代码实现带界面的数独游戏
Apr 04 #Python
Python decorator拦截器代码实例解析
Apr 04 #Python
You might like
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
PHP面向对象法则
2012/02/23 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
python 为什么说eval要慎用
2019/03/26 Python
Pycharm小白级简单使用教程
2020/01/08 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
纺织工程专业个人求职信范文
2014/01/27 职场文书
《画》教学反思
2014/04/14 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
务工证明怎么写
2015/06/18 职场文书
公司欠款证明
2015/06/24 职场文书
红楼梦读书笔记
2015/06/25 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript