从字典列表中查找最老的createate和keyid,并在字典中返回结果



系统的响应如下:

{'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())
}
]
}

所以用户有两个不同的键,用不同的create。我必须将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())}

最新更新