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

Python解析JSON实现tar.gz与对应yaml文件映射不受顺序影响的方案

实现方案

你之前的实现手动逐行处理JSON文本、硬依赖路径的行位置,才会无法适配顺序变化的场景。直接调用Python官方json库解析输入文件,通过后缀名识别两类文件,完全不受数组内元素顺序的影响,代码也更简洁稳定。

import json

def read_input():
    files_to_be_processed = {}
    # 直接加载JSON文件,自动解析为标准字典结构
    with open('input.json', 'r', encoding='utf-8') as f:
        input_data = json.load(f)
    # 遍历所有存储路径的数组
    for path_list in input_data.values():
        # 按后缀筛选对应文件,和数组内顺序无关
        tar_gz_path = next(path for path in path_list if path.endswith('.tar.gz'))
        yaml_path = next(path for path in path_list if path.endswith('.yaml'))
        files_to_be_processed[tar_gz_path] = yaml_path
    return files_to_be_processed

if __name__ == "__main__":
    result = read_input()
    print(result)

适配说明

  • 完全覆盖你提到的所有场景:数组内tar.gz在前、yaml在前、不同数组顺序混合都可以正常生成目标字典
  • 若需要兼容数组可能缺失对应后缀文件的极端场景,可将next()方法替换为带异常捕获的逻辑,添加自定义兜底处理即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:21:00