python自动格式化json文件的方法

本文实例讲述了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 ''+' '*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 resif __name__=="__main__":  jf=JsonFormatter(name="json.txt")  jf.render()

登录后复制

希望本文所述对大家的Python程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2292790.html

(0)
上一篇 2025年2月28日 02:06:27
下一篇 2025年2月19日 20:50:01

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python处理csv数据的方法

    本文实例讲述了python处理csv数据的方法。分享给大家供大家参考。具体如下: Python代码: 复制代码 代码如下:#coding=utf-8__author__ = ‘dehua.li’from dateti…

    编程技术 2025年2月28日
    200
  • python模拟鼠标拖动操作的方法

    本文实例讲述了python模拟鼠标拖动操作的方法。分享给大家供大家参考。具体如下: pdf中的书签只有页码,准备把现有书签拖到一个目录中,然后添加自己页签。重复的拖动工作实在无趣,还是让程序帮我实现吧,我可以喝点水,休息一下了 1. Pyt…

    2025年2月28日
    200
  • python实现简单温度转换的方法

    本文实例讲述了python实现简单温度转换的方法。分享给大家供大家参考。具体分析如下: 这是一段简单的python代码,用户转换不同单位的温度,适合初学者参考 复制代码 代码如下:def c2f(t):    return (t*9/5.0…

    编程技术 2025年2月28日
    200
  • python实现简单socket程序在两台电脑之间传输消息的方法

    本文实例讲述了python实现简单socket程序在两台电脑之间传输消息的方法。分享给大家供大家参考。具体分析如下: python开发简单socket程序在两台电脑之间传输消息,分为客户端和服务端,分别在两台电脑上运行后即可进行简单的消息传…

    编程技术 2025年2月28日
    200
  • Python实现测试磁盘性能的方法

    本文实例讲述了python实现测试磁盘性能的方法。分享给大家供大家参考。具体如下: 该代码做了如下工作: create 300000 files (512B to 1536B) with data from /dev/urandomrewr…

    编程技术 2025年2月28日
    200
  • Python比较两个图片相似度的方法

    本文实例讲述了python比较两个图片相似度的方法。分享给大家供大家参考。具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一些,太小的图片不好比较。附件提供完整测试…

    编程技术 2025年2月28日
    200
  • Python解析xml中dom元素的方法

    本文实例讲述了python解析xml中dom元素的方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下:from xml.dom import minidomtry:    xmlfile = open(“path…

    编程技术 2025年2月28日
    200
  • python通过urllib2获取带有中文参数url内容的方法

    本文实例讲述了python通过urllib2获取带有中文参数url内容的方法。分享给大家供大家参考。具体如下: 对于中文的参数如果不进行编码的话,python的urllib2直接处理会报错,我们可以先将中文转换成utf-8编码,然后使用ur…

    编程技术 2025年2月28日
    200
  • Python用GET方法上传文件

    之前在osc看到一个文章讨论get和post的不同, 有人说不能用get来上传文件。这就是用get上传文件的例子,client用来发get请求,server用来收请求。文件内容是在http请求的body内传过去的。用了不同的语言,因为我觉得…

    编程技术 2025年2月28日
    200
  • Python写的Tkinter程序屏幕居中方法

    本文适用场景:想用tkinter开发界面程序并屏幕居中,但没找到相应的api。 这两天玩了玩Tkinter,感觉不错,就是屏幕居中这个问题在网上搜了很长时间也没 找到答案,最后没办法,看它的文档,用自己的方法实现了。 方法很土,就是获取初始…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论