logo

Python – Pretty Print JSON

JSON reiškia J ava S kripta O objektas N otacija. Tai duomenų struktūrizavimo formatas. Šį formatą naudoja skirtingos žiniatinklio programos, kad galėtų bendrauti tarpusavyje. Šiame straipsnyje mes sužinosime apie JSON gražų spausdinimą

Kas yra JSON?

JSON (JavaScript Object Notation) yra teksto duomenų formatas, kurį galima pakeisti daugeliu programavimo kalbų. Jis dažniausiai naudojamas duomenims perduoti tarp kliento ir serverio programų. Paprastai sumažintos JSON teksto versijos perduodamos siekiant sutaupyti pralaidumo. Tačiau norint derinti ir analizuoti, reikalinga patobulinta versija arba gražus spausdintas JSON. Iš esmės gražus JSON spausdinimas reiškia tinkamą įtrauką, baltus tarpus ir skyriklius.

Pavyzdys:



  Input:   '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]'   Output:   [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ]>

json.dumps() Python

Pirmiausia naudokite json.loads() metodą, kad konvertuotumėte JSON eilutę į Python objektas. Norint konvertuoti šį objektą į gražią JSON eilutę, naudojamas json.dumps() metodas. Toliau pateikiami pavyzdžiai ir veiksmai, padedantys geriau suprasti šiuos atvejus.

Sintaksė: json.dumps(obj, įtrauka,skyriklis)

Parametras:

  • obj: Serijuokite obj kaip JSON formatuotą srautą
  • įtrauka: Jei įtrauka yra neneigiamas sveikasis skaičius arba eilutė, tada JSON masyvo elementai ir objekto nariai bus gražiai atspausdinti naudojant tą įtraukos lygį. Įtraukos lygis 0, neigiamas arba įterps tik naujas eilutes.
  • separatoriai: Jei nurodyta, skyrikliai turi būti (item_separator, key_separator) eilė.

Pretty Print JSON eilutė

Šis metodas turi parametro įtrauką, skirtą tarpų skaičiui nurodyti, ir skyriklio parametrą, skirtą rakto ir reikšmės skyrikliui nurodyti. Pagal numatytuosius nustatymus skyriklis yra kablelis tarp rakto-reikšmių porų ir dvitaškis tarp rakto ir reikšmės. Jei json.dumps() įtraukos parametras yra neigiamas, 0 arba tuščia eilutė, tada nėra įtraukų ir įterpiamos tik naujos eilutės. Pagal numatytuosius nustatymus įtrauka yra Nėra, o duomenys pateikiami vienoje eilutėje.

Kodas paima JSON eilutę, kurioje yra mokinio įrašų, išanalizuoja ją į Python duomenų struktūrą, tada gražiai išspausdina JSON duomenis su tinkama įtrauka, kad būtų geriau skaitoma.

Python3




import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> 'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>4>)> print>(json_formatted_str)>

>

>

Išvestis:

[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]>

Gana atspausdinti JSON duomenys į failą su įtrauka=0 .

Kodas paima JSON eilutę, kurioje yra studentų įrašų, išanalizuoja ją į Python duomenų struktūrą ir gražiai išspausdina JSON duomenis su nuline įtrauka, todėl jie yra kompaktiški ir mažiau skaitomi.

Python3




import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>0>)> print>(json_formatted_str)>

>

>

Išvestis:

[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]>

Į failą įrašykite Pretty Print JSON duomenis

Norint įrašyti Python objektą kaip JSON Pretty Print formato duomenis į failą, naudojamas json.dump() metodas. Kaip ir json.dumps() metodas, jis turi įtraukas ir skyriklio parametrus, kad būtų galima įrašyti patobulintą JSON.

Python3




import> json> data>=> [{>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]}]> with>open>(>'filename.json'>,>'w'>) as write_file:> >json.dump(data, write_file, indent>=>4>)>

>

>

Išvestis:

failo pavadinimas.json

Skaityti JSON duomenis ir gražiai juos atspausdinti

Jei norite skaityti JSON iš failo arba URL, naudokite json.load(). Tada naudokite json.dumps(), kad konvertuotumėte objektą (gautą nuskaitant failą) į gražią spausdintą JSON eilutę.

Python3




import> json> with>open>(>'filename.json'>,>'r'>) as read_file:> > >obj>=> json.load(read_file)> >pretty_json>=> json.dumps(obj, indent>=>4>)> >print>(pretty_json)>

>

>

Išvestis:

[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]>

Naudojant pprint modulis į gana spausdintą JSON spausdinti mūsų JSON formatą

Šis kodas nuskaito JSON duomenis iš failo, pavadinto test.json, analizuoja juos į Python duomenų struktūrą ir tada spausdina naudodamas abuprint>funkcija irpprint>modulis. Thepprint>modulis naudojamas norint gražiai spausdinti JSON duomenis su konkrečiomis formatavimo parinktimis, tokiomis kaip 2 įtrauka, 30 simbolių eilutės plotis ir kompaktiškas vaizdas.

Python3




import> json> import> pprint> with>open>(>'test.json'>,>'r'>) as json_data:> >student>=> json.load(json_data)> >print>(student)> >print>(>' '>)> pp>=> pprint.PrettyPrinter(indent>=>2>, width>=>30>, compact>=>True>)> print>(>'Pretty Printing using pprint module'>)> pp.pprint(student)>

>

>

Išvestis:

{'Teacher_id': 1, 'name': 'Suraj', 'Salary': 50000, 'attendance': 80, 'Branch': ['English', 'Geometry', 'Physics', 'World History'], 'email': '[email protected]'} Pretty Printing using pprint module ('{'Teacher_id': 1, 'name': ' ''Suraj', 'Salary': 50000, ' ''attendance': 80, ' ''Branch': ['English', ' ''Geometry', 'Physics', ' ''World History'], 'email': ' ''[email protected]'}')>

Pretty print JSON iš komandinės eilutės

Šiame pavyzdyje mes bandome spausdinti duomenis naudodami komandinę eilutę. Norėdami patvirtinti ir gražiai spausdinti JSON objektus iš komandinės eilutės, Python siūlo paketą json.tool.

Python3




echo {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]} | python>->m json.tool>

>

dhanashree verma

>

Išvestis:

{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }>