如何解决在python中从JSON查找最新日期
我想从JSON输出(请求)中找到最新的endTime,并稍后获取“ id”以进行其他操作。
这是我的JSON的示例
[
{
"endTime": "2020-08-14 20:19:34 CEST+0200","id": "ecd1837a-7158-4abe-baa4-8ef15a09e4a7","startTime": "2020-08-14 20:19:30 CEST+0200",},{
"endTime": "2020-08-12 19:41:09 CEST+0200","id": "ff0cd9dd-db90-4bfc-a783-bce0b98473be","startTime": "2020-08-12 19:23:37 CEST+0200",{
"endTime": "2020-08-12 20:00:28 CEST+0200","id": "f3cc6782-e40b-48f2-aa23-90f693961db8","startTime": "2020-08-12 19:45:23 CEST+0200",}
]
此JSON的获取方式如下:
r = requests.get(url,headers=header,verify=False)
我遇到以下两个问题:
1-尝试将endTime转换为datetime时,如何处理开头的“ CEST + 0200”?对于其他格式,我相信我的使用是正确的:
%Y-%m-%d %H:%M:%S
2-我应该如何遍历所有JSON endTime条目以比较它们并获取最新值?我应该使用循环还是最大函数会有所帮助?
这是我第一次使用datetime,所以我的问题似乎有点简单。我的在线研究没有产生任何具体结果。
解决方法
您可以使用此脚本获取所需的内容。
from dateutil import parser
dates = [
{
"endTime": "2020-08-14 20:19:34 CEST+0200","id": "ecd1837a-7158-4abe-baa4-8ef15a09e4a7","startTime": "2020-08-14 20:19:30 CEST+0200",},{
"endTime": "2020-08-12 19:41:09 CEST+0200","id": "ff0cd9dd-db90-4bfc-a783-bce0b98473be","startTime": "2020-08-12 19:23:37 CEST+0200",{
"endTime": "2020-08-12 20:00:28 CEST+0200","id": "f3cc6782-e40b-48f2-aa23-90f693961db8","startTime": "2020-08-12 19:45:23 CEST+0200",}
]
latest_date = sorted(dates,key=lambda i: i["endTime"],reverse=True)[0]
end_date_info = latest_date["endTime"].replace(" CEST","")
date_time_converted = parser.isoparse(end_date_info)
print(date_time_converted,f"Type: {type(date_time_converted)}")
print(f"Latest date id: ",latest_date["id"])
输出:
2020-08-14 20:19:34+02:00 Type: <class 'datetime.datetime'>
Latest date id: ecd1837a-7158-4abe-baa4-8ef15a09e4a7
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。