繁体   English   中英

从字典列表中找到最旧的创建日期和 keyid 并将结果返回到字典中

[英]find oldest createdate and keyid from list of dicts and return result in a dict

我从系统得到以下响应:

{'KeyMetadata':
[
    {
        'UserName': 'thisusernameA',
        'KeyId': 'ABCDE12345',
        'CreateDate': datetime.datetime(2022,11, 30, 13, 7, 43, tzinfo=tzutc())
    },
    {
        'UserName': 'thisusernameA',
        'KeyId': 'CDEFG678911',
        'CreateDate': datetime.datetime(2022,12, 9, 14, 50, 36, tzinfo=tzutc())
    }
]
}

所以用户有两个不同的密钥,具有不同的创建日期。 我必须从最旧的键中分离出 KeyId 和 CreateDate,然后将结果返回到这样的字典中:

{'KeyId': 'ABCDE12345', 'CreateDate': datetime.datetime(2022,11, 30, 13, 7, 43, tzinfo=tzutc())}

我似乎想出了一种方法来至少获得最早的日期:

mylist=my_result["KeyMetadata"]
seq = [x['CreateDate'] for x in mylist]
my_oldest=min(seq)

但是接下来我该怎么办? 如何获取相关的 KeyId 并构建字典响应?

不要将数据分开,使用min和自定义键来使用日期

data = {'KeyMetadata': [
    {'UserName': 'thisusernameA', 'KeyId': 'ABCDE12345',
     'CreateDate': datetime.datetime(2022, 11, 30, 13, 7, 43, tzinfo=tzutc())},
    {'UserName': 'thisusernameA', 'KeyId': 'CDEFG678911',
     'CreateDate': datetime.datetime(2022, 12, 9, 14, 50, 36, tzinfo=tzutc())}
]}

min_item = min(data['KeyMetadata'], key=lambda item: item['CreateDate'])
print(min_item)
# {'UserName': 'thisusernameA', 'KeyId': 'ABCDE12345', 'CreateDate': datetime.datetime(2022, 11, 30, 13, 7, 43, tzinfo=tzutc())}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM