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() メソッドが使用されます。以下に、これらのケースをよりよく理解するための例と手順を示します。
構文: 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
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)> |
出力:
[ { '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' ] }