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

如何查找Python字典值在CSV中的匹配行并输出对应键与编号?

问题

我有如下格式的CSV文件:

1087,c6d537e112156be1afbb8a5a85221ff4d95e2461f83f03425549ff42dee7a278

同时我有一个Python字典:

{'danial': '277375b99e186c72ac38ac47b03199038342fe0389be8765476fa2be0c5b5649', 'elham': 'c6d537e112156be1afbb8a5a85221ff4d95e2461f83f03425549ff42dee7a278'}

需要实现:查找字典中的值在CSV文件中的匹配项,将CSV中匹配行的首列编号与字典的对应键关联输出,示例输出如下:

danial,1087
elham,1011
解决方案

可以分两步实现:先把CSV内容转换成哈希值:编号的映射字典,再遍历目标字典匹配输出。

代码实现

# 1. 读取CSV并构建哈希值到编号的映射
hash_to_id = {}
with open('your_file.csv', 'r') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        id_num, hash_val = line.split(',', 1)
        hash_to_id[hash_val] = id_num

# 2. 遍历目标字典,匹配并输出
target_dict = {'danial': '277375b99e186c72ac38ac47b03199038342fe0389be8765476fa2be0c5b5649', 'elham': 'c6d537e112156be1afbb8a5a85221ff4d95e2461f83f03425549ff42dee7a278'}

for name, hash_val in target_dict.items():
    # 用get方法避免找不到匹配时报错,可自定义默认值
    matched_id = hash_to_id.get(hash_val, '无匹配')
    print(f"{name},{matched_id}")

说明

  • 读取CSV时用split(',', 1),确保即使哈希值意外包含逗号也不会拆分错误(你的案例中哈希值不含逗号,但写法更健壮);
  • 用get方法处理无匹配的情况,避免抛出KeyError;
  • 运行前记得把'your_file.csv'替换成实际的CSV文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:25:35