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

Python读取文本块数据 转换为A-G字段对应嵌套列表的实现问题

调整后可直接输出目标结构的完整代码

# 定义A到G的固定排序规则
key_order = ["A", "B", "C", "D", "E", "F", "G"]
result = []

# 读取文件内容
with open("file.txt", "r", encoding="utf-8") as f:
    content = f.read()

# 按ENDBLOCK拆分外层大块,过滤空块
raw_blocks = [b for b in content.split("---    ENDBLOCK") if b.strip()]

for raw_block in raw_blocks:
    current_block = []
    # 拆分当前大块内的所有子块,过滤空内容
    sub_blocks = [sb.strip() for sb in raw_block.split("\n\n") if sb.strip()]
    for sub_block in sub_blocks:
        # 跳过无关内容:无等号、包含RETCODE的行块
        if " = " not in sub_block or "RETCODE" in sub_block:
            continue
        # 子块转键值对字典
        kv_map = {}
        for line in sub_block.split("\n"):
            line = line.strip()
            if not line:
                continue
            k, v = line.split(" = ")
            # 若需要值为字符串则去掉int()包裹
            kv_map[k] = int(v)
        # 按A-G顺序生成子列表,无对应值留空
        sorted_item = [kv_map.get(key, "") for key in key_order]
        current_block.append(sorted_item)
    if current_block:
        result.append(current_block)

# 格式化输出验证
import json
print(json.dumps(result, indent=4))

核心调整点

  • 保留了外层大块的层级边界,不会将所有子块混为同一层级
  • 新增固定键位映射逻辑,严格按A-G顺序生成子列表,不存在的键自动留空
  • 增加多级内容过滤,避免无关的提示文本、空行被误识别为有效子块

运行上述代码即可直接得到你要求的嵌套列表结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:39:03