python json 递归打印所有json子节点信息的例子


Posted in Python onFebruary 27, 2020

我就废话不多说了,直接上代码吧

def json_txt(self, dic_json):
 #self.debug_print("json_txt")
 if isinstance(dic_json, dict): # 判断是否是字典类型isinstance 返回True false
  for key in dic_json:
   #dic_json = json.loads(s)
   s = dic_json[key]
   #self.debug_print(str(len(s)) + " type:" + str(type(s)))
   t=str(type(s))
   if t.startswith("<class 'list'>"):
    for i in range(0, len(s)):
     self.debug_print("%s %d:" % (key, i))
     self.json_txt(s[i])
   else:
    self.debug_print("%s: %s" % (key, s))
 else:
  self.debug_print("else")

补充拓展:python求json某层节点的和实例

如下所示:

import json

from collections import Mapping

import json

def dict_generator(indict, pre=None):
pre = pre[:] if pre else []
if isinstance(indict, dict):
for key, value in indict.items():
if isinstance(value, dict):
if len(value) == 0:
yield pre+[key, ‘{}']
else:
for d in dict_generator(value, pre + [key]):
yield d
elif isinstance(value, list):
if len(value) == 0:
yield pre+[key, ‘[]']
else:
for v in value:
for d in dict_generator(v, pre + [key]):
yield d
elif isinstance(value, tuple):
if len(value) == 0:
yield pre+[key, ‘()']
else:
for v in value:
for d in dict_generator(v, pre + [key]):
yield d
else:
yield pre + [key, value]
else:
yield indict

def recursive_findall(obj, key, paths=None):
ret = []
if not paths:
paths = []
if isinstance(obj, Mapping):
for k, v in obj.iteritems():
found_items = recursive_findall(v, key, paths=(paths + [(‘k', k)]))
ret += found_items
elif isinstance(obj, (list, tuple)):
for i, v in enumerate(obj):
found_items = recursive_findall(v, key, paths=(paths + [(‘i', i)]))
ret += found_items
else:
if key(obj):
ret.append((paths, obj))
return ret

ret_dict = {
“data”:[
{
“email”:"",
“repoCommits”:[
{
“branchCommitLine”:[
{
“submitLine”:1
},
{
“submitLine”: 1
}]},
{
“branchCommitLine”: [
{
“submitLine”: 1
},
{
“submitLine”: 1
}]}]
},
 {
  "email": "",
  "repoCommits": [
   {
    "branchCommitLine": [
     {
      "submitLine": 1
     },
     {
      "submitLine": 1
     }]},
   {
    "branchCommitLine": [
     {
      "submitLine": 1
     },
     {
      "submitLine": 1
     }]}]

 }



    ]
   }

if name == ‘main':

all_socre = 0
for da in ret_dict["data"]:
 if da.has_key("repoCommits"):
  for repo in da["repoCommits"]:
   if repo.has_key("branchCommitLine"):
    for branch in repo["branchCommitLine"]:
     if branch.has_key("submitLine"):
      all_socre += int(branch["submitLine"])
     else:
      continue
   else:
    continue
 else:
  continue
ret = dict_generator(ret_dict)
print(ret)
for i in ret:
 print i[-1]

以上这篇python json 递归打印所有json子节点信息的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
深入理解Python3中的http.client模块
Mar 29 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
Oct 15 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
python实现简单颜色识别程序
Feb 19 Python
python 画条形图(柱状图)实例
Apr 24 Python
Pytest之测试命名规则的使用
Apr 16 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 #Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 #Python
matlab中imadjust函数的作用及应用举例
Feb 27 #Python
浅析matlab中imadjust函数
Feb 27 #Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 #Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 #Python
pytorch之Resize()函数具体使用详解
Feb 27 #Python
You might like
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
应届生船舶驾驶求职信
2013/10/19 职场文书
秋游活动策划方案
2014/02/16 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
优秀团队申报材料
2014/12/26 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers