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

Python中从字典获取数据时忽略大小写的实现方法

实现忽略大小写查找字典键的方法

当然可以实现,给你两种实用的方案:

方案1:生成小写键映射字典

先把原字典的所有键转成小写,构建一个新的映射字典,之后直接用小写的目标键取值即可:

for row in dict_reader:
    # 将row的键统一转为小写,创建新字典
    lowercase_row = {k.lower(): v for k, v in row.items()}
    # 用小写的键取值,兼容原键的任意大小写
    part_number = lowercase_row['number']
    part_name = lowercase_row['name']
    part_number_list.append({f"{part_number}.mod": part_name})

如果担心目标键不存在会抛出KeyError,可以用get方法设置默认值:

part_number = lowercase_row.get('number', '默认编号')
part_name = lowercase_row.get('name', '默认名称')

方案2:写一个大小写不敏感的取值函数

如果不想生成新字典,可以写一个通用函数,遍历原字典的键进行大小写匹配:

def get_case_insensitive_value(dictionary, target_key):
    target_key_lower = target_key.lower()
    for key, value in dictionary.items():
        if key.lower() == target_key_lower:
            return value
    # 没找到时可以抛出异常或返回默认值
    raise KeyError(f"未找到匹配 '{target_key}' 的键(忽略大小写)")

# 使用示例
for row in dict_reader:
    part_number = get_case_insensitive_value(row, 'Number')
    part_name = get_case_insensitive_value(row, 'Name')
    part_number_list.append({f"{part_number}.mod": part_name})

注意事项

如果原字典中存在多个键转小写后完全相同的情况(比如同时有Number和number),以上两种方法都会返回第一个匹配到的值,需要确保你的数据源里没有这种重复键的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:27:28