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

疾病预测函数出现KeyError: 'skin_rash'问题求解决

解决KeyError: 'skin_rash'的问题

问题根源

你的symptom_index字典使用替换下划线为空格的字符串作为键(比如"skin rash"),但你传入的症状参数是带下划线的格式(比如"skin_rash"),两者格式不匹配,导致无法找到对应键触发KeyError。

具体修复方案

1. 统一输入与字典键的格式

在predictDisease函数里,先对输入的症状做格式转换,把下划线替换为空格,再去匹配symptom_index:

def predictDisease(symptoms_input):
    # 处理不同类型的输入:字符串/列表/集合
    if isinstance(symptoms_input, str):
        symptoms = symptoms_input.split(',')
    else:
        symptoms = list(symptoms_input)
    
    # 统一格式:去掉前后空格,替换下划线为空格
    processed_symptoms = [symptom.strip().replace('_', ' ') for symptom in symptoms]
    
    # 后续用processed_symptoms查询symptom_index,构建模型输入向量
    # ... 原有的预测逻辑代码 ...

2. 验证symptom_index的正确性

打印symptom_index的键列表,确认目标症状(比如"skin rash")确实存在于字典中,避免构建字典时出现遗漏或转换错误:

print(list(symptom_index.keys()))

如果发现缺少对应键,检查字典构建代码,确保所有数据集里的症状都被正确转换为空格格式的键。

3. 可选:兼容多种输入格式

如果想让函数同时支持带空格和下划线的症状输入,可以写一个归一化函数统一格式:

def normalize_symptom(symptom):
    # 统一转换为字典使用的空格格式,同时转小写避免大小写问题
    return symptom.strip().replace('_', ' ').lower()

# 处理输入时调用归一化函数
processed_symptoms = [normalize_symptom(s) for s in symptoms]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:47:36