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

如何从txt文件导入词条替换JSON中patterns数组硬编码内容

从TXT文件加载词汇替换JSON硬编码数组实现方案

首先明确核心前提:标准JSON语法不支持直接引用外部文件,你写的"patterns": [words.txt]不是合法JSON格式,需要在代码加载配置的预处理环节完成TXT内容读取和替换,最终生成合法的配置对象供匹配逻辑使用,不需要改动原有词条匹配的业务代码。

实现步骤

  • 第一步:整理词汇表TXT文件
    词汇文件每行存一个词条,不需要加引号、逗号等JSON语法符号,空行会被自动过滤,示例words.txt内容:
    hi
    hello
    hey
    good morning
    你好
    
  • 第二步:修改配置文件写法
    配置文件里直接按你预期的写法标记外部TXT引用即可,示例config.json:
    {
      "patterns": [words.txt],
      "reply": "Hello! How can I help you?"
    }
    
  • 第三步:实现带TXT引用解析的配置加载逻辑
    以Python实现为例,其他语言逻辑完全一致:读取配置原始文本 -> 正则匹配所有TXT引用标记 -> 读取对应TXT的词汇生成合法JSON数组 -> 替换原标记后再走标准JSON解析:
    import json
    import re
    from pathlib import Path
    
    def load_config(config_path: str) -> dict:
        config_file = Path(config_path)
        config_base_dir = config_file.parent
        raw_config_text = config_file.read_text(encoding="utf-8")
    
        def replace_txt_match(match_obj):
            json_key = match_obj.group(1)
            txt_file_name = match_obj.group(2).strip()
            # 读取TXT词条,自动过滤空行、去除每行首尾空白
            word_list = [
                line.strip()
                for line in (config_base_dir / txt_file_name).read_text(encoding="utf-8").splitlines()
                if line.strip()
            ]
            # 替换为合法JSON数组格式
            return f"{json_key}: {json.dumps(word_list, ensure_ascii=False)}"
    
        # 匹配 "键名": [xxx.txt] 格式的外部引用
        processed_config_text = re.sub(
            r'("patterns"\s*:)\s*\[\s*([a-zA-Z0-9_\-\.]+\.txt)\s*\]',
            replace_txt_match,
            raw_config_text
        )
        return json.loads(processed_config_text)
    
    # 加载配置
    config = load_config("config.json")
    # 后续原有匹配逻辑完全不用改,直接用config["patterns"]做检索即可
    

扩展说明

如果需要支持多个数组字段从不同TXT加载,只需要把正则里的固定键名"patterns"改成通用键名匹配规则"([a-zA-Z0-9_]+)",就能自动识别所有配置项里的TXT引用,不需要为每个字段单独写解析逻辑。
后续新增、删除、修改词条只需要编辑对应TXT文件即可,不需要改动代码或者调整JSON配置结构,完全替换原有硬编码数组的维护方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:51:26