最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python自動(dòng)格式化json文件的方法

 更新時(shí)間:2015年03月11日 15:51:55   作者:Xsank  
這篇文章主要介紹了python自動(dòng)格式化json文件的方法,可實(shí)現(xiàn)將json文件格式化的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了python自動(dòng)格式化json文件的方法。分享給大家供大家參考。具體如下:

這里主要實(shí)現(xiàn)將代碼混亂的json文件格式化。
還有一小堆python常用算法代碼

完整實(shí)例代碼點(diǎn)擊此處本站下載。

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()

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

酒泉市| 彭泽县| 特克斯县| 绿春县| 敦化市| 平山县| 仲巴县| 东乡族自治县| 凌源市| 新宁县| 唐山市| 瑞金市| 阿拉善左旗| 鲁山县| 仁怀市| 望江县| 东阿县| 嘉禾县| 遂溪县| 朝阳市| 筠连县| 黄梅县| 嘉兴市| 河津市| 北川| 杭锦旗| 双桥区| 双牌县| 栾城县| 沐川县| 福安市| 汉阴县| 乌海市| 梧州市| 乌苏市| 西华县| 凤山县| 四川省| 家居| 滨州市| 多伦县|