python字符串的美化_Python构造自定义方法来美化字典结构输出
示例:
代码如下:d = { "root": { "folder2": { "item2": None, "item1": None }, "folder1": { "subfolder1": { "item2": None, "item1": None }, "subfolder2": { "item3": None } } } }
美观输出是:
观察一下特点:
1.同一level的key左对齐,即indent相同。d = { "root": { "folder2": { "item2": None, "item1": None }, "folder1": { "subfolder1": { "item2": None, "item1": None }, "subfolder2": { "item3": None } } } }
2.在,号后换行。
3.如果value是字典,即嵌套字典,则嵌套字典在下一个level,每一个level的key的indent都不一样。
思路分析:
这是个"拼接字符串"问题,元素有""{}:,\n和空格indent。
遍历一个个(k, v)键值对,拼接yield起来,遇到嵌套字典就递归,即递归+yield。
上代码。#coding=utf-8
def pretty_dict(obj, indent=' '):
def _pretty(obj, indent):
for i, tup in enumerate(obj.items()):
k, v = tup
#如果是字符串则拼上""
if isinstance(k, basestring): k = '"%s"'% k
if isinstance(v, basestring): v = '"%s"'% v
#如果是字典则递归
if isinstance(v, dict):
v = ''.join(_pretty(v, indent + ' '* len(str(k) + ': {')))#计算下一层的indent
#case,根据(k,v)对在哪个位置确定拼接什么
if i == 0:#开头,拼左花括号
if len(obj) == 1:
yield '{%s: %s}'% (k, v)
else:
yield '{%s: %s,\n'% (k, v)
elif i == len(obj) - 1:#结尾,拼右花括号
yield '%s%s: %s}'% (indent, k, v)
else:#中间
yield '%s%s: %s,\n'% (indent, k, v)
print ''.join(_pretty(obj, indent))
d = { "root": { "folder2": { "item2": None, "item1": None }, "folder1": { "subfolder1": { "item2": None, "item1": None }, "subfolder2": { "item3": None } } } }
pretty_dict(d)
更多Python构造自定义方法来美化字典结构输出相关文章请关注PHP中文网!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
python字符串的美化_Python构造自定义方法来美化字典结构输出相关推荐
- python字符串代码对象_Python源码剖析 - Python中的字符串对象
1. 前言 我们已经在 [Python中的整数对象] 章节中对定长对象进行了详细的讲解,接下来我们将介绍变长对象,而字符串类型,则是这类对象的典型代表. 这里必须先引入一个概念: Python 中的变 ...
- python字符串拼接数字_python字符串和数值操作函数大全(非常全)
字符串和数值型数字的操作大全 1.反斜杠\的使用规则:一般使用表示续行的操作,可以其他符号相结合组成其他的一些使用符号,转义字符\'的使用会识别引号,使得字符串中的引号和外面本来的啊引号相区分. (1 ...
- python字符串打印教学_python字符串格式化教你正确打印 : D
python字符串格式化教你正确打印 : D python字符串格式化教你正确打印 : D 文章目录 用格式字符% 字符串 整数 浮点数 format格式化 print需要注意的地方 转义字符 %运算 ...
- python字符串逆序_python之字符串逆序
python之字符串逆序 1.贴题 题目来自PythonTip 给你一个字符串 a, 请你输出逆序之后的a. 例如:a='xydz' 则输出:zdyx 2.说明 思路基本分为两种, 一是编写循环,每次 ...
- python字符串截取拼接_Python字符串拼接、截取及替换方法总结分析
本文实例讲述了Python字符串拼接.截取及替换方法.分享给大家供大家参考,具体如下: python字符串连接 python字符串连接有几种方法,我开始用的第一个方法效率是最低的,后来看了书以后就用了 ...
- python字符串成熟编码_python字符串转公式两种方法获取网页编码python版
在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...
- python字符串title函数_python字符串内建函数-capitalize、title、upper
python字符串内建函数-capitalize.title.upper 6.capitalize 函数功能:该函数用于将字符串的第一个字母变成大写,其他字母变成小写. 返回值:该函数的返回值是一个首 ...
- python字符串的特点_python小白之路(特性语法三之字符串)
字符串:双引号或单引号中的数据 输出:print() 输入:input() 切片:[起始下标:结束下标:步长] PS:选取区间属于左闭右开型.[1:5:1] [5:1:-1] 常见操作: find: ...
- python字符串函数运算_Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】 原创...
前面简单介绍了python基本运算,这里再来简单讲述一下Python字符串相关操作 1. 字符串表示方法 >>> "www.jb51.net" #字符串使用单引号 ...
最新文章
- 第02章_MySQL环境搭建
- 所有配置_一张图看懂iPhone12的所有配置!
- Docker生成镜像的两种方式
- 未封装的扩展程序是什么意思_Android漏洞挖掘第三期:客户端完整性未校验
- 【报告分享】2019网红电商生态发展白皮书.pdf
- 基本的 HTML 标签
- linux新终端找回任务,如何向您的Linux终端添加强大的多任务
- C#网络编程----使用UdpClient实现网络会议讨论(详解)
- shell脚本学习教程(全网最全教学)
- 百度地图java批量获得经纬度_批量调用百度地图API获取地址经纬度坐标
- 电力拖动自动控制系统_专插本专业全面分析:电子工程及其自动化
- 软件开发的一些注意事项
- AI大事件 | Geoffrey Hinton决定抛弃反向传播,预期策略梯度算法
- Servlet 04
- 怎样配置java的环境变量_java配置环境变量步骤
- 《CCNP安全Secure 642-637认证考试指南》——2.3节入侵者动机
- 机器学习做自动聊天机器人_我和一个治疗机器人聊天,缓解了我对Covid的恐惧。 这很奇怪。
- mkv封装格式+ebml语法
- ARCGIS对不同值域的格栅影像用同一图例出图
- pcap_next_ex() 捕获数据包
热门文章
- Linux服务器编程之:utime()函数
- define关键字的使用,以及宏函数的定义
- 处理字符串_7_判断字符串是字符串数字型
- java jtable刷新_使用Swing timer实现Jtable数据定时更新
- C++之链表中头指针、头节点、首元结点的
- RDIFramework.NET V3.3 Web版角色授权管理新增角色对操作权限项、模块起止生效日期的设置...
- 运维常说的 5个9、4个9、3个9 的可靠性,到底是什么???
- Java第十次作业--多线程
- 《税的真相》—— 读后总结
- 修改Oracle数据库字符集