处理任意深度嵌套的dict和list的更通用的解决方案是:def dumpclean(obj):

if isinstance(obj, dict):

for k, v in obj.items():

if hasattr(v, '__iter__'):

print k

dumpclean(v)

else:

print '%s : %s' % (k, v)

elif isinstance(obj, list):

for v in obj:

if hasattr(v, '__iter__'):

dumpclean(v)

else:

print v

else:

print obj

这将产生输出:A

color : 2

speed : 70

B

color : 3

speed : 60

我遇到了类似的需求,并开发了一个更健壮的函数作为自己的练习。我把它放在这里,以防对别人有价值。在运行nosetest时,我还发现能够在调用中指定输出流以便可以使用sys.stderr也很有帮助。import sys

def dump(obj, nested_level=0, output=sys.stdout):

spacing = ' '

if isinstance(obj, dict):

print >> output, '%s{' % ((nested_level) * spacing)

for k, v in obj.items():

if hasattr(v, '__iter__'):

print >> output, '%s%s:' % ((nested_level + 1) * spacing, k)

dump(v, nested_level + 1, output)

else:

print >> output, '%s%s: %s' % ((nested_level + 1) * spacing, k, v)

print >> output, '%s}' % (nested_level * spacing)

elif isinstance(obj, list):

print >> output, '%s[' % ((nested_level) * spacing)

for v in obj:

if hasattr(v, '__iter__'):

dump(v, nested_level + 1, output)

else:

print >> output, '%s%s' % ((nested_level + 1) * spacing, v)

print >> output, '%s]' % ((nested_level) * spacing)

else:

print >> output, '%s%s' % (nested_level * spacing, obj)

使用此函数,OP的输出如下所示:{

A:

{

color: 2

speed: 70

}

B:

{

color: 3

speed: 60

}

}

我个人认为这更有用,更具描述性。

举一个不那么简单的例子:{"test": [{1:3}], "test2":[(1,2),(3,4)],"test3": {(1,2):['abc', 'def', 'ghi'],(4,5):'def'}}

OP请求的解决方案产生以下结果:test

1 : 3

test3

(1, 2)

abc

def

ghi

(4, 5) : def

test2

(1, 2)

(3, 4)

而“增强”版本会产生以下结果:{

test:

[

{

1: 3

}

]

test3:

{

(1, 2):

[

abc

def

ghi

]

(4, 5): def

}

test2:

[

(1, 2)

(3, 4)

]

}

我希望这能为下一个寻找此类功能的人提供一些价值。

python逐行打印_如何用Python逐行打印字典?相关推荐

  1. python md5加密_如何用python“优雅”的调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...

  2. 用python画耳朵_如何用python画猪头

    用python画猪头的方法:首先设置画布和画笔,代码为[a.screensize(400,300)a.setup(width=400,height=300)]:然后画脸型,代码为[.goto(-100 ...

  3. python怎么读_如何用Python读写文件

    前面我们已经介绍了很多Python相关的基础知识,大家是不是对Python已经有了进一步认识了呢?作为人工智能时代的热门编程语言,开始接触并学习Python的孩子越来越多,家长们都不想让自己的孩子落于 ...

  4. python旅游推荐系统_如何用Python搭建一个简单的推荐系统?

    推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小 ...

  5. 用python开启相机_如何用Python打开realsenseD435相机并获取相机参数

    如何用Python打开realsenseD435相机 import pyrealsense2 as rs import numpy as np import cv2 if __name__ == &q ...

  6. python读取二进制文件_如何用python读取二进制文件?

    我发现用Python读取二进制文件特别困难.你能帮我一把吗?我需要读取这个文件,在Fortran 90中,该文件很容易被int*4 n_particles, n_groups real*4 group ...

  7. python求平均值_如何用python求平均值

    学习了Python相关数据类型,函数的知识后,利用字符串的分割实现了输入任意多个数据,并计算其平均值的小程序.思路是接收输入的字符串,以空格为分隔符,将分割的数据存入列表(lst1)中,将lst1中的 ...

  8. python小助手_如何用python写个人专属群聊提醒小助手?

    前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚生 ...

  9. 如何用python计算圆周率_如何用python计算圆周率?

    如何用python计算圆周率? python计算圆周率的方法: 圆周率没有精确的计算公式,所以只能用近似的方式计算它的近似值. 我们运用蒙特卡罗方法,思路很简单,在下面图形中随机抛置大量的点, 计算落 ...

  10. python做网站开发_如何用Python做网站开发

    很多人想要用Python做网站开发,但是又不知从何入手,接下来小编介绍用Python做网站开发需要学习哪些知识,又应该以什么样的顺序来学. 第一步:HTML(超文本标记语言)是网页的核心,学好HTML ...

最新文章

  1. Python-Requests.post方法中,传参data与json的区别
  2. 在windows中手动安装第三方模块
  3. idea卸载不干净怎么办_fxfactory卸载不干净?Fxfactory及插件卸载教程
  4. centos 多台 文件夹同步_在Centos下对高并发web框架Tornado的性能进行测试
  5. 许家印深夜主持集团营销大会:恒大全国楼盘全线7折!
  6. 拓端tecdat|如何用r语言制作交互可视化报告图表
  7. 面向对象10:多态性的使用、重载和重写的区别、多态性的实用意义
  8. java如果文件存在则删除_Java删除文件(如果存在)的更好方法
  9. 巧用GPSID驱动 快速实现WinCE GPS开发
  10. 虚拟化是什么,虚拟化技术分类
  11. 手机市场的竞争,用户价值才是硬道理
  12. 新西兰计算机科学硕士哪所大学最好,2020年新西兰哪些大学计算机科学专业比较好及其优势介绍...
  13. CSDN博客排名前15名
  14. From COM to COM 侯捷
  15. 莫尔斯代码的c语言编码,c语言编写莫尔斯码,帮帮忙啊,速回
  16. 【Kafka】第三篇-Kafka的集群及Canal介绍
  17. Spark 大表之间的join
  18. 分辨率,码率,帧率,ppi,像素,帧大小的计算
  19. MNIST数据集分类
  20. 分布式系统(Distributed Systems)概述

热门文章

  1. MYSQL执行计划EXPLAIN
  2. python 鱼骨图_面向对象编程,鱼骨图分析法
  3. spring MVC 项目 WEB-INF下的jsp不能加载css文件
  4. CF1062E Company
  5. MATLAB生成正弦波
  6. 一个简单CI/CD流程的思考
  7. MyEclipse优化,解决MyEclipse运行慢、卡顿问题
  8. [原创]java WEB学习笔记36:Java Bean 概述,及在JSP 中的使用,原理
  9. (C/C++) 算法,编程题
  10. Delphi用指针读取数组某个元素