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

如何在Python中打印GitHub返回JSON对象的所有message字段值

提取GitHub对比JSON中所有'message'属性值的方法

由于GitHub返回的对比JSON是嵌套结构(比如commit对象里的message,可能还有其他层级的同名字段),需要递归遍历整个JSON对象来找出所有名为message的属性值。

实现代码

import requests

def find_all_messages(obj):
    messages = []
    # 处理字典类型的结构
    if isinstance(obj, dict):
        for key, value in obj.items():
            if key == 'message':
                messages.append(value)
            # 递归处理嵌套的子结构
            messages.extend(find_all_messages(value))
    # 处理列表类型的结构
    elif isinstance(obj, list):
        for item in obj:
            messages.extend(find_all_messages(item))
    return messages

# 请求并解析JSON数据
response = requests.get('https://api.github.com/repos/git/git/compare/v2.37.4...v2.38.1')
json_obj = response.json()

# 获取所有message值并打印
all_messages = find_all_messages(json_obj)
for msg in all_messages:
    print(msg)

代码说明

  • 递归函数find_all_messages会遍历JSON的每一层结构:遇到字典时检查键是否为message,是则收集对应值;遇到列表或嵌套的子结构时,继续递归遍历,确保不遗漏任何层级的目标字段。
  • 最后遍历收集到的所有message值,逐个打印输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:20:54