如何在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
相关产品推荐
相关产品推荐

