本文实例讲述了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程序设计有所帮助。

Pythonusesahybridmodelofcompilationandinterpretation: 1) thepythoninterpretercompilessourcodcecodeintoplatform-independentbytecode.2) thepythonvirtualmachine (PVM) thenexecutesthisbytecode, BalantingeaseOfusoWithperformance.

Pythonisbothinterpretedandandcompiled.1) it'scompiledtobytecodeforporabilityAcrossplatforms.2) theBytecodeistheninterpreted, membolehkanfordynamictypingandrapiddevelopment, walaupunItmayBeslowerLowerWanLelyCiledlanguages.

ForloopsareidealwhenyonesshenumberofiterationsationseSinadvance, whilewhileloopsarebetterforsituationshipheryouneedtoloopuntilaconditionismet.forloopsaremoreeficientablyandable, yang sesuai, manakala whileloopsoffermorecontrolandareusefereficeficeficeficeficient,

Forloopsareusedwhenthenumberofiterationsisknowninadvance, whilewhileloopsareusedwhenTheiterationsdependonacondition.1) forloopsareidealforiteratingoversequencesLikeListsorArrays.2)

Pythonisnotpurelyinterinterpreted; itusesahybridapproachofbytecodecompilationandruntimeinterpretation.1) pythoncompilessourcecodeintobytecode, whoomeSthenexecutedbythepythonvirtualmachine (pvm)

ToConcatenatelistsinpythonwiththesameelements, gunakan: 1) operatortokokduplicates, 2) asettoremoveduplicates, OR3) listomprehensionfensionfensionfensionfensiontroloverduplicates, setiapmethodhasdifferentperformanceAdordlications.

Pythonisaninterpretedlanguage, menawarkanfuseofuseandflexibilitybutfacingperpormancelimitationsincriticalapplications.1) interpretlanguagesepythonexecuteline-by-line, membolehkanMmediateDebackandrapidprototyping.2)

Useforloopswhenthenumberofiterationsisknowninadvance,andwhileloopswheniterationsdependonacondition.1)Forloopsareidealforsequenceslikelistsorranges.2)Whileloopssuitscenarioswheretheloopcontinuesuntilaspecificconditionismet,usefulforuserinputsoralgorit


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).
