将python数据结构导出成字符串并自动缩进格式化
来源:互联网 发布:oracle示例数据库 编辑:程序博客网 时间:2024/06/06 00:51
python可以做轻量级服务器,因此我就想要怎么给python做导表工具,如果数据格式不用json而直接用python的格式要怎么做。于是乎就写了个类似json模块一样的工具。这个工具可以将python数据结构直接导出成字符串并格式化缩进。导出的文本直接就可以当作python脚本使用,导入到其他python脚本里就可以直接使用字典等数据了。
# 将dict对象格式化输出成字符串"""author:kaluluosidate:2015-11-02dump pyton object to string and format it."""_lines = []indent=4def tab(depth=0): return ' '*indent*depthdef toStr(s): return "\"%s\""%sdef islambda(s): return 'lambda' in sdef writeline(): _lines.append('\n')def parse(obj,depth=0): if isinstance(obj,str): if islambda(obj): _lines.append(obj) else: _lines.append(toStr(obj)) else: if isinstance(obj,dict): parse_dict(obj,depth) elif isinstance(obj,list): parse_list(obj,depth) else: _lines.append(str(obj))def parse_dict(dic,depth=0): _lines.append('{') #开头 writeline() #换行 depth+=1 #缩进增加 #循环遍历所有的item for k,v in dic.items(): _lines.append(tab(depth)) #缩进 parse(k,depth) # _lines.append(':') parse(v,depth) #值 _lines.append(',') writeline() #换行 depth-=1 #缩进还原 _lines.append(tab(depth)+'}') #结束def parse_list(lst,depth=0): _lines.append('[') #开头 writeline() #换行 depth+=1 #缩进增加 #循环遍历所有的item for v in lst: _lines.append(tab(depth)) parse(v,depth) _lines.append(',') writeline() #换行 depth-=1 #缩进还原 _lines.append(tab(depth)+']') #结束def dumps(obj,indent=True): parse(obj) c='' if indent: c = ''.join(_lines) else: c = ''.join([l.strip() for l in _lines]) return cdef main(): dic = { 'a':1,1:'2',2:{1:1,2:2},3:[1,2,4,5,6,7],4:"lambda :print('a')"} c = dumps(dic,False) print(c) if __name__ == '__main__': main()
导出结果<pre name="code" class="python">{
"a":1,
1:"2",
2:{
1:1,
2:2,
},
3:[
1,
2,
4,
5,
6,
7,
],
4:lambda :print('a'),
}
0 0
- 将python数据结构导出成字符串并自动缩进格式化
- Android学习之JSON字符串格式化,自动缩进
- JSON字符串格式化,自动缩进 ---Android基础篇
- 用python将%格式化字符串转换成xliff格式
- 打造vim成为python IDE, 支持自动补全, 定义跳转, 按PEP8规范自动缩进和代码格式化
- linux vim 设置 python 自动缩进
- NotePad++ 关于Python的自动缩进设置
- Dreamweaver 中格式化[让自动换行缩进]代码的方法,
- dreamweaver使用技巧之格式化代码自动缩进
- Notepad++如何自动缩进(格式化)c++\java代码
- GVIM删除空白行,实现自动格式化(缩进)
- 将long数据存到字符串中并格式化字符串数组
- Python字符串格式化符号
- PYTHON 字符串格式化
- 字符串格式化(python)
- Python:字符串格式化
- python字符串格式化
- Python字符串格式化
- struts2核心工作流程与原理
- Android仿QQ实现ListView滑动删除
- struct打包模块加强版!支持任意长度字符串解包
- NYOJ 1058 部分和问题(dfs)
- linux编译内核make menuconfig报错解决办法
- 将python数据结构导出成字符串并自动缩进格式化
- win7 vc++ ide 解决方案
- Ofbiz 事务详解
- 动态类型Dynamic
- NYOJ 27 水池数目(dfs)
- C#流言终结者1(当初入门时的一些小实验)
- 复数类完整实现 + 四则运算符重载
- 欢迎使用CSDN-markdown编辑器
- RTTI简介