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错误处理详解
Sep 28 Python
python查询mysql中文乱码问题
Nov 09 Python
python修改操作系统时间的方法
May 18 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
Python3生成手写体数字方法
Jan 30 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
python添加菜单图文讲解
Jun 04 Python
Python列表的切片实例讲解
Aug 20 Python
numpy:np.newaxis 实现将行向量转换成列向量
Nov 30 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
python删除csv文件的行列
Apr 06 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 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
改进的IP计数器
2006/10/09 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
Javascript学习笔记二 之 变量
2010/12/15 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Python中实现对list做减法操作介绍
2015/01/09 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Puppeteer使用示例详解
2019/06/20 Python
python如何实现数据的线性拟合
2019/07/19 Python
python 等差数列末项计算方式
2020/05/03 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
小学生暑假感言
2014/02/06 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
525心理健康活动总结
2015/05/08 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
现货白银电话营销话术
2015/05/29 职场文书
《窃读记》教学反思
2016/02/18 职场文书