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

如何用Python从JSON结构中提取包含SNAPSHOT的Line字段值

实现思路

该JSON结构的目标字段访问路径为:根对象 -> diffs数组 -> 单个diff对象 -> hunks数组 -> 单个hunk对象 -> segments数组 -> 单个segment对象 -> lines数组 -> 单个line对象 -> line字段,你只需要逐层遍历每个层级的数组,检查每个line字段是否包含关键词SNAPSHOT即可。

完整Python实现代码
import json

# 若你的完整JSON数据存储在本地文件,用该方式加载
# 注意你给出的仅为diffs字段片段,完整合法JSON应为包裹在{}中的结构:{"diffs": [...]}
with open("你的JSON文件路径.json", "r", encoding="utf-8") as f:
    data = json.load(f)

# 若你的JSON是字符串格式,直接用以下方式加载即可
# data = json.loads("你的JSON字符串")

matched_lines = []
# 逐层遍历嵌套结构
for diff in data.get("diffs", []):
    for hunk in diff.get("hunks", []):
        for segment in hunk.get("segments", []):
            for line_item in segment.get("lines", []):
                line_content = line_item.get("line", "")
                if "SNAPSHOT" in line_content:
                    # 可以根据需求决定是否保留前后空白字符,这里用strip()去除了前后缩进
                    matched_lines.append(line_content.strip())

# 输出结果
print("匹配到的内容:")
for line in matched_lines:
    print(line)

# 本示例运行输出为:componente = '1.37.1-number-1234-SNAPSHOT'
注意事项
  • 代码统一用get方法获取字段值,避免某个层级缺少对应键时抛出异常,缺键默认返回空列表/空字符串,不影响遍历逻辑
  • 可根据需求调整匹配规则,比如大小写不敏感匹配可以改成"SNAPSHOT" in line_content.upper()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:05