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

如何从Python嵌套字典中提取并清洗所有text示例且保留原格式

实现方案

核心逻辑是通过两层嵌套循环覆盖所有意图下的示例文本,同时对原始字典做深拷贝避免修改原数据,保证返回的字典结构和原始结构完全一致。

完整代码实现

import copy
import unicodedata

def clean_text(raw_text: str) -> str:
    # 1. 转换为全小写
    lower_text = raw_text.lower()
    # 2. Unicode标准化(NFC格式统一重音等特殊字符的编码)
    # 若需要去除重音可额外添加过滤逻辑:unicodedata.normalize('NFD', lower_text).encode('ascii', 'ignore').decode('utf-8')
    normalized_text = unicodedata.normalize('NFC', lower_text)
    return normalized_text

def process_intent_dict(original_dict: dict) -> dict:
    # 深拷贝原始字典,保证原数据不被修改,返回结构和原结构完全一致
    processed_dict = copy.deepcopy(original_dict)
    # 第一层循环:遍历所有意图项
    for intent_item in processed_dict['intents']:
        # 第二层循环:遍历当前意图下的所有示例文本
        for example in intent_item['examples']:
            # 替换为清洗后的文本
            example['text'] = clean_text(example['text'])
    return processed_dict

# 调用示例
if __name__ == '__main__':
    # 填入你提供的原始字典
    raw_dict = {'intents': [{'intent': 'CambiarDireccion', 'examples': [{'text': 'compre la lavadora, pero me equivoque y no cambié la dirección de despacho'}, {'text': 'podrían enviarla a otra dirección'}, {'text': 'sin querer compre en otra direccion como la mudo'}, {'text': 'efectue la compra en la direccion incorrecta'}, {'text': 'necesito mudar la direccion'}, {'text': 'necesito mudar mi direccion'}, {'text': 'quiero mudar mi direccion'}, {'text': 'quiero cambiar mi direccion cono puedo hacer'}, {'text': 'Quiero cambiar la dirección de envío y no puedo , como lo hago'}, {'text': 'Holaa! Llegaria a más tardar el Domingo? Lo quiero enviar a otra dirección,en las Rejas'}, {'text': 'compre en la direccion equivocada quiero cambiarla'}, {'text': 'como puedo mudar mi direccion'}, {'text': 'como puedo hacer para cambiar la direccion'}, {'text': 'Cómo puedo cambiar de destino de mi compra?'}, {'text': 'Coloqué mal la direccion'}, {'text': 'acabo de aser una compra pero me equivoque de dirección me sale mi dirección anterior'}, {'text': 'quiero mudar mi direccion como hago'}]}, {'intent': 'CP', 'examples': [{'text': 'código postal 1812'}, {'text': 'el cp es'}, {'text': 'el código postal es'}, {'text': 'cp es 1212'}, {'text': 'cp es'}, {'text': 'cp'}, {'text': 'código postal'}]}], 'pagination': {'refresh_url': '/v1/workspaces/1ae2c245-76eb-44ff-7b7a-4dk6dfafac51/intents?version=2020-04-01&export=true'}}
    result = process_intent_dict(raw_dict)
    print(result)

常见问题说明

之前只能获取到第一组examples文本,是因为缺少嵌套循环:必须先遍历intents列表下的每一个意图对象,再遍历每个意图独立的examples列表,才能覆盖所有的示例文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:05