logo

Python – きれいな印刷 JSON

JSON を意味する J エイバ S 地下室 オブジェクト N オテーション。データを構造化するための形式です。この形式は、さまざまな Web アプリケーションが相互に通信するために使用されます。この記事では、JSON pretty print について学びます。

JSONとは何ですか?

JSON (JavaScript Object Notation) は、多くのプログラミング言語と互換性のあるテキストベースのデータ形式です。これは、クライアントとサーバーのアプリケーション間のデータ送信によく使用されます。通常、帯域幅を節約するために、JSON テキストの縮小バージョンが送信されます。ただし、デバッグと分析には、美化されたバージョンまたはきれいに印刷された JSON が必要です。基本的に、きれいに印刷された JSON とは、適切なインデント、空白、区切り文字があることを意味します。

例:



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

Python の json.dumps()

まず、json.loads() メソッドを使用して JSON 文字列を次のように変換します。 パイソン 物体。このオブジェクトをきれいに表示される JSON 文字列に変換するには、 json.dumps() メソッドが使用されます。以下に、これらのケースをよりよく理解するための例と手順を示します。

Java ソフトウェア パターン

構文: json.dumps(obj, インデント,セパレータ)

パラメータ:

  • オブジェクト: obj を JSON 形式のストリームとしてシリアル化する
  • インデント: indent が負でない整数または文字列の場合、JSON 配列要素とオブジェクト メンバーはそのインデント レベルで整形して表示されます。 インデント レベルが 0、負、または改行のみを挿入する場合。
  • 区切り文字: 指定する場合、区切り文字は (item_separator, key_separator) タプルである必要があります。

きれいに印刷される JSON 文字列

このメソッドには、スペースの数を指定するパラメータ indent と、キーと値の間の区切り文字を指定する separator パラメータがあります。デフォルトでは、区切り文字はキーと値のペアの間はカンマ、キーと値の間はコロンです。 json.dumps() の indent パラメータが負の値、0、または空の文字列の場合、インデントはなく、改行のみが挿入されます。デフォルトでは、インデントは「なし」で、データは 1 行で表されます。

このコードは、生徒の記録を含む JSON 文字列を取得し、それを Python データ構造に解析してから、読みやすさを向上させるために適切なインデントを使用して JSON データを整形して出力します。

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

>

>

出力:

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

きれいに印刷された JSON データをファイルに保存 インデント=0

このコードは、生徒の記録を含む JSON 文字列を取得し、それを Python データ構造に解析してから、JSON データをインデントなしで整形して出力するため、コンパクトで読みにくくなります。

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

>

日付形式.形式

>

出力:

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

Pretty Print JSON データをファイルに書き込む

PythonオブジェクトをJSON Pretty Print形式のデータとしてファイルに書き込むには、json.dump()メソッドを使用します。 json.dumps() メソッドと同様に、整形された 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>)>

>

>

出力:

ファイル名.json

Javaでwhileループを実行する

JSON データを読み取り、きれいに出力します

ファイルまたは URL から JSON を読み取るには、 json.load() を使用します。次に、 json.dumps() を使用して、オブジェクト (ファイルの読み取りから取得したもの) を、きれいに表示される JSON 文字列に変換します。

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

>

>

Pythonは数値です

出力:

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

使用する JSON を整形印刷するための pprint モジュール JSON形式を印刷するには

このコードは、test.json というファイルから JSON データを読み取り、それを Python データ構造に解析し、組み込みのprint>機能とpprint>モジュール。のpprint>モジュールは、2 のインデント、30 文字の行幅、コンパクトな表現などの特定の書式設定オプションを使用して JSON データを整形して印刷するために使用されます。

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

>

>

出力:

{'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]'}')>

コマンドラインから JSON を整形して出力する

この例では、コマンド ラインを使用してデータを出力しようとしています。コマンドラインから JSON オブジェクトを検証して整形表示するために、Python には json.tool パッケージが用意されています。

Python3




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

>

テキストサイズラテックス
>

出力:

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