「JSONまたはJavaScriptObjectNotationは、最新のアプリケーションで広く採用されている軽量のデータ交換形式です。 NoSQLデータベースで作業している場合でも、APIデータをフェッチしている場合でも、JSONに遭遇します。
シンプルでありながら厳密なスキーマのため、広く採用されている言語です。 これにより、人間の可読性を維持しながらエラーを減らすことができます。
幸い、Pythonにはjsonという組み込みパッケージがあり、JSONデータを操作して処理することができます。
このチュートリアルでは、Pythonのjsonモジュールを使用してJSONデータをきれいに印刷する方法について説明します。」
始めましょう。
Python json.dumps()関数
PythonでJSONデータをきれいに印刷するには、jsonモジュールのdumpsメソッドを使用します。 関数の構文は次のとおりです。
1 |
json。ダンプ((obj、 *、 スキップキー=間違い、 sure_ascii=真実、 check_circular=真実、 allow_nan=真実、 cls=なし、 インデント=なし、 セパレーター=なし、 デフォルト=なし、 sort_keys=間違い、 ** kw)。 |
関数パラメーターは以下のとおりです。
- obj –印刷するJSONオブジェクトを指します。
- スキップキー – trueに設定すると、関数はstr、int、float、bool、またはNoneタイプではないキーをスキップします。 この値はデフォルトでfalseに設定されています。
- sure_ascii – trueに設定すると、関数は非ASCII文字をエスケープした出力を返します。 この値はデフォルトでtrueです。
- check_circular – trueの場合、コンテナタイプの循環参照チェックをスキップします。 それ以外の場合は、OverFlowErrorを返します。
- allow_nan –範囲外のfloatは、trueに設定されている場合、NaN、Infinity、または-Inifinityの代わりに使用されます。
- インデント –プリティプリント形式のインデントレベルを指定します。 インデントレベルが0または負の場合、関数は新しい行のみを出力します。 データをよりコンパクトに表現するには、1より大きい正の整数を指定してください。
- セパレーター –項目とキーの個別の文字を指定します。
- sort_keys – trueの場合、関数は出力ディクショナリをそのキーでソートします。
この関数を使用してJSONデータをきれいに印刷する方法を見てみましょう。
例1
以下の例は、json.dumps()関数を使用してJSONオブジェクトをきれいに印刷する方法を示しています。
1 |
から json 輸入 ダンプ、 負荷
データ = ‘{“id”:1、 “first_name”: “Jada”、 “last_name”: “Deport”、 “email”: “[email protected]”、”性別 “:”女性 “、” ip_address “:” 68.40.159.153 “} ‘ json_object = 負荷((データ)。 印刷((ダンプ((json_object、 インデント=3)。)。 |
まず、必要な関数をインポートします。 この場合、jsonオブジェクトをきれいに出力するためのdumps()関数と、jsonをPythonオブジェクトに逆シリアル化するためのロードが必要です。
次に、生のJSONデータを保持する変数を作成します。 load’関数を使用してPythonオブジェクトに変換し、最後に、dumps()関数を使用してきれいに出力します。
結果の出力は次のようになります。
1 |
$pythonpretty_print。py
{{ 「id」: 1、 “ファーストネーム”: 「ジェイダ」、 “苗字”: 「国外追放」、 “Eメール”: 「」[email protected]「」、 “性別”: “女性”、 “IPアドレス”: 「68.40.159.153」 |
以下のコードは、インデントレベルが1の同じJSO出力レベルを示しています。
1 |
から json 輸入 ダンプ、 負荷
データ = ‘{“id”:1、 “first_name”: “Jada”、 “last_name”: “Deport”、 “email”: “[email protected]”、”性別 “:”女性 “、” ip_address “:” 68.40.159.153 “} ‘ json_object = 負荷((データ)。 印刷((ダンプ((json_object、 インデント=1)。)。 |
結果の出力:
インデントレベルが3の場合、JSONを印刷するときに空白文字が追加されることに注意してください。
例2–キーの並べ替え
sort_keysパラメーターをTrueに設定することにより、出力ディクショナリのキーをソートすることもできます。
以下の例を考えてみましょう。
1 |
から json 輸入 ダンプ、 負荷
データ = ‘{“id”:1、 “first_name”: “Jada”、 “last_name”: “Deport”、 “email”: “[email protected]”、”性別 “:”女性 “、” ip_address “:” 68.40.159.153 “} ‘ json_object = 負荷((データ)。 印刷((ダンプ((json_object、 インデント=1、 sort_keys=真実)。)。 |
コードは、出力ディクショナリのキーを次のように昇順で並べ替える必要があります。
結果の辞書の各キーがアルファベット順に並べ替えられていることに注意してください。
例3–ファイルからJSONをきれいに印刷する
Pythonのopen関数を使用すると、JSONファイルからデータを読み込んできれいに印刷できます。 次のようなJSONファイルがあるとします。
以下のサンプルコードに示すように、ファイルをロードしてjson.dumps()メソッドを使用できます。
1 |
から json 輸入 ダンプ、 ロード
と 開いた((‘net_info.json’、 ‘r’)。 なので f: json_data = ロード((f)。 印刷((ダンプ((json_data、 インデント=1)。)。 |
上記の例では、load関数を使用して、JSONデータをファイルからJSONオブジェクトにロードします。
次に、dumps関数を使用して、インデントレベル1できれいに印刷します。結果の出力は次のようになります。
出力は、JSONデータを表すPython辞書の適切にフォーマットされたリストを提供します。
結論
このチュートリアルでは、JSONダンプ関数を使用してPythonでJSONデータをきれいに印刷する方法を学びました。 また、sort_keysパラメーターを使用してJSONデータをキーで並べ替える方法も学びました。
読んでくれてありがとう!!
The post Pretty Print JSON Python appeared first on Gamingsym Japan.