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

如何从数组内的字典中根据value获取对应key?

如何从数组字典中通过Value反查关联Key?

嘿,这个需求其实挺常见的,我来给你捋捋怎么实现哈~核心思路就是遍历数组里的每一个字典,检查目标值是否存在于字典的value中,找到后就能拿到对应的关联key啦(比如你要的'id')。

我用Python举个具体的例子,你可以参考:

首先定义你的示例数组:

# 假设你的数组结构是这样的
user_records = [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"},
    {"id": 3, "name": "Charlie"},
    {"id": 4, "name": "Prashant"}
]

基础版:找到第一个匹配的id

写个简单函数,传入目标value,返回对应的id:

def get_target_id(target_name):
    for record in user_records:
        # 这里明确检查name字段的value是否匹配
        if record.get("name") == target_name:
            return record.get("id")
    # 如果没找到匹配项,返回None或者你想要的提示
    return None

# 测试一下,找'Prashant'对应的id
print(get_target_id("Prashant"))  # 输出:4

进阶版:处理多个匹配的情况

如果数组里可能有多个字典包含同一个value,比如有两个叫'Prashant'的记录,那可以返回所有对应的id:

def get_all_target_ids(target_name):
    matching_ids = []
    for record in user_records:
        if record.get("name") == target_name:
            matching_ids.append(record.get("id"))
    return matching_ids

# 模拟添加重复项
user_records.append({"id": 5, "name": "Prashant"})
print(get_all_target_ids("Prashant"))  # 输出:[4, 5]

通用版:不确定value对应的key时

如果你不确定目标value存在于哪个key下(比如可能在'name'、'username'等字段),可以遍历字典的所有键值对来查找:

def get_id_by_any_value(target_value):
    for record in user_records:
        if target_value in record.values():
            return record.get("id")
    return None

# 同样测试'Prashant'
print(get_id_by_any_value("Prashant"))  # 输出:4

这样根据你的实际场景选对应的方法就好啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:30:08