国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2019-11-25 17:57:35
字體:
供稿:網(wǎng)友

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

這里主要實現(xiàn)將代碼混亂的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 resif __name__=="__main__":  jf=JsonFormatter(name="json.txt")  jf.render()

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 屯留县| 万载县| 营山县| 定襄县| 沽源县| 措美县| 关岭| 札达县| 泾源县| 将乐县| 阿拉善右旗| 武鸣县| 泸西县| 顺义区| 乌拉特前旗| 绿春县| 焦作市| 西平县| 大渡口区| 日土县| 政和县| 阿克| 连州市| 田林县| 通城县| 敦化市| 高尔夫| 德保县| 清徐县| 博罗县| 尚志市| 毕节市| 金溪县| 崇义县| 乃东县| 始兴县| 云霄县| 台安县| 偃师市| 石阡县| 河东区|