python - Python - 从嵌套列表中提取值
问题描述
我有一个如下所示的列表:
[{'id': 'id_123',
'type': 'type_1',
'created_at': '2020-02-12T17:45:00Z'},
{'id': 'id_124',
'type': 'type_2',
'created_at': '2020-02-12T18:15:00Z'},
{'id': 'id_125',
'type': 'type_1',
'created_at': '2020-02-13T19:43:00Z'},
{'id': 'id_126',
'type': 'type_3',
'created_at': '2020-02-13T07:00:00Z'}]
我试图找出type : type_1
发生了多少次以及该列表中最早的created_at
时间戳是什么type_1
解决方案
我们可以通过几个步骤来实现这一点。
要查找发生的次数type_1
,我们可以将内置函数filter
与itemgetter
.
from operator import itemgetter
def my_filter(item):
return item['type'] == 'type_1'
key = itemgetter('created_at')
items = sorted(filter(my_filter, data), key=key)
print(f"Num records is {len(items)}")
print(f"Earliest record is {key(items[0])}")
Num records is 2
Earliest record is 2020-02-12T17:45:00Z
相反,您可以使用生成器理解,然后对生成器进行排序。
gen = (item for item in data if item['type'] == 'type_1')
items = sorted(gen, key=key)
# rest of the steps are the same...
推荐阅读
- java - 如何从 jBPM 的默认 H2 DB 切换到 MariaDB 等另一个数据库?
- ios - FCM 检测 IOS 上的应用程序卸载(firebase 云消息推送通知)
- amazon-web-services - 我可以为我的域名 Godaddy 和 Route53 使用 DNS 服务吗?
- regex - Apache - 阻止请求,但仅当查询字符串中不存在三个关键字时
- flutter - 没有为类型“function”定义方法“containsKey”。我该如何解决?
- python-3.x - 来自列表中另一个用户模型的 Django 管理链接
- vega-lite - vega-lite:如何添加从日期时间列开始的列
- android - WorkManager 做一个异步工作
- css - Wordpress Porto 主题去除背景边框阴影
- node.js - date-fns 将 UTC 转换为时区