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检测手机QQ在线状态的脚本代码
Feb 10 Python
python 七种邮件内容发送方法实例
Apr 22 Python
Python实现求一个集合所有子集的示例
May 04 Python
Python动态导入模块的方法实例分析
Jun 28 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
win8.1安装Python 2.7版环境图文详解
Jul 01 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
python小程序实现刷票功能详解
Jul 17 Python
Python logging自定义字段输出及打印颜色
Nov 30 Python
Python项目实战之使用Django框架实现支付宝付款功能
Feb 23 Python
Django中的JWT身份验证的实现
May 07 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
main.php
2006/12/09 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
php四种基础算法代码实例
2013/10/29 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
python 穷举指定长度的密码例子
2020/04/02 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
机修工工作职责
2014/02/21 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
法人代表资格证明书
2015/06/18 职场文书
网络舆情信息简报
2015/07/21 职场文书
网络研修随笔感言
2015/11/18 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技