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的面向对象思想分析
Jan 14 Python
Python中的filter()函数的用法
Apr 27 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
Django ModelForm组件使用方法详解
Jul 23 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
python生成特定分布数的实例
Dec 05 Python
浅谈Python中的字符串
Jun 10 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
Python绘制分类图的方法
Apr 20 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
海贼王:最美的悬赏令!
2020/03/02 日漫
php email邮箱正则
2008/10/08 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
JS 实现导航栏悬停效果
2013/09/23 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
Django 2.0版本的新特性抢先看!
2018/01/05 Python
Python之list对应元素求和的方法
2018/06/28 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Python tkinter和exe打包的方法
2020/02/05 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
甲方资料员岗位职责
2013/12/13 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
投资合作协议书
2014/04/17 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
节能环保口号
2014/06/12 职场文书
教师求职信
2014/06/17 职场文书
求职自我推荐信
2014/06/25 职场文书
中国梦读书活动总结
2014/07/10 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
高三毕业感言
2015/07/30 职场文书
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
JS class语法糖的深入剖析
2022/07/07 Javascript