你瞧,你绿油油的小草从土里钻了出来。嫩嫩的,它在饱受严冬的考验之后,在严冬它聚集着力量,想在春天到来时,将力量释放出来,它展示出了生命力的顽强,也展现出自己对春天的渴望!在万物最需要水的时候,春雨悄悄地轻轻地到来了。生怕踩到了这些顽强的小精西。春雨打在小草的脸上,轻轻地。小草贪婪的吮吸着春雨,一会儿,春风也来 "凑热闹 "了,春风来为柳树 "梳头 "来了,春风也轻轻地,怕自己的鲁莽把柳树的头发弄断了。
本文实例讲述了python自动格式化json文件的方法。分享给大家供大家参考。具体如下:
这里主要实现将代码混乱的json文件格式化。
还有一小堆python常用算法代码
完整实例代码点击此处本站下载。
class JsonFormatter:
def __init__(self,intend=4,name=""):
self.name=name
self.intend=intend
self.stack=[]
self.obj=None
self.source=self.get_source(name)
self.prepare()
@staticmethod
def json_str(s):
return '"'+s+'"'
@staticmethod
def get_source(name):
with open(name,'r') as f:
return ''.join(f.read().split())
def prepare(self):
try:
self.obj=eval(self.source)
except:
raise Exception('Invalid json string!')
def line_intend(self,level=0):
return '\n'+' '*self.intend*level
def parse_dict(self,obj=None,intend_level=0):
self.stack.append(self.line_intend(intend_level)+'{')
intend_level+=1
for key,value in obj.items():
key=self.json_str(str(key))
self.stack.append(self.line_intend(intend_level)+key+':')
self.parse(value,intend_level)
self.stack.append(',')
self.stack.append(self.line_intend(intend_level-1)+'}')
def parse_list(self,obj=None,intend_level=0):
self.stack.append(self.line_intend(intend_level)+'[')
intend_level+=1
for item in obj:
self.parse(item,intend_level)
self.stack.append(',')
self.stack.append(self.line_intend(intend_level-1)+']')
def parse(self,obj,intend_level=0):
if obj is None:
self.stack.append('null')
elif obj is True:
self.stack.append('true')
elif obj is False:
self.stack.append('false')
elif isinstance(obj,(int,long,float)):
self.stack.append(str(obj))
elif isinstance(obj,str):
self.stack.append(self.json_str(obj))
elif isinstance(obj,(list,tuple)):
self.parse_list(obj,intend_level)
elif isinstance(obj,dict):
self.parse_dict(obj,intend_level)
else:
raise Exception('Invalid json type %s!' % obj)
def render(self):
self.parse(self.obj,0)
res_file='good'+self.name
res=''.join(self.stack)
with open(res_file,'w') as f:
f.write(res)
print res
if __name__=="__main__":
jf=JsonFormatter(name="json.txt")
jf.render()
希望本文所述对大家的Python程序设计有所帮助。
到此这篇关于python自动格式化json文件的方法就介绍到这了。勇士搏出惊涛骇流而不沉沦,懦夫在风平浪静也会溺水。生活不是让你用来妥协的。你退缩得越多,那么可以让你喘息的空间也就是越少。更多相关python自动格式化json文件的方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!




