You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从字典列表中筛选最早CreateDate对应的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())
    }
]
}

需要提取最早创建的密钥的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并构造目标字典?

解决方案

你可以直接遍历mylist,找到CreateDate等于my_oldest的字典项,再提取需要的字段构造新字典:

# 找到对应最早日期的密钥条目
oldest_key = next(item for item in mylist if item['CreateDate'] == my_oldest)
# 构造目标字典
result_dict = {'KeyId': oldest_key['KeyId'], 'CreateDate': oldest_key['CreateDate']}

或者用更高效的方式,不用单独提取日期列表,直接借助min函数的key参数一步定位最早条目:

mylist = my_result["KeyMetadata"]
# 直接根据CreateDate找到最早的密钥条目
oldest_key = min(mylist, key=lambda x: x['CreateDate'])
# 构造目标字典
result_dict = {'KeyId': oldest_key['KeyId'], 'CreateDate': oldest_key['CreateDate']}

这种方式省去了二次遍历的步骤,代码更简洁高效。


内容的提问来源于stack exchange,提问作者DennisZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:05:32