PythonでJSONを整形する方法について説明します。Pythonの標準ライブラリであるjson
を使用します。
JSONを文字列に格納して整形する
Pythonのjson
ライブラリを使用して、文字列に格納されたJSONを整形することができます。以下にその方法を示します。
import json
JSON_SAMPLE = '{"_meta": {"hash": {"sha256": "hash"}, "pipfile-spec": 6, "requires": {"python_version": "3.6"}, "sources": [{"name": "pypi", "url": "https://pypi.python.org/simple", "verify_ssl": true}]}}'
data = json.loads(JSON_SAMPLE)
print(json.dumps(data, indent=2))
このコードは、json.loads()
でJSON文字列をPythonの辞書に変換し、json.dumps()
で辞書を再度JSON文字列に変換します。dumps()
のindent
引数を使用してインデントの大きさを指定します。
JSONをファイルに格納して整形する
JSONがファイルに格納されている場合、json.load()
とopen()
を使用して整形することができます。以下にその方法を示します。
import json
JSON_FILE = 'data.json'
with open(JSON_FILE) as f:
data = json.load(f)
print(json.dumps(data, indent=2))
このコードは、json.load()
でJSONファイルをPythonの辞書に変換し、json.dumps()
で辞書を再度JSON文字列に変換します。dumps()
のindent
引数を使用してインデントの大きさを指定します。
シンタックスハイライトを付けて整形する
シンタックスハイライトを付けてJSONを表示するには、pygments
ライブラリを使用します。以下にその方法を示します。
import json
from pygments import highlight
from pygments.lexers import JsonLexer
from pygments.formatters import TerminalFormatter
JSON_SAMPLE = '{"_meta": {"hash": {"sha256": "hash"}, "pipfile-spec": 6, "requires": {"python_version": "3.6"}, "sources": [{"name": "pypi", "url": "https://pypi.python.org/simple", "verify_ssl": true}]}}'
data = json.loads(JSON_SAMPLE)
formatted_data = json.dumps(data, indent=2)
print(highlight(formatted_data, JsonLexer(), TerminalFormatter()))
このコードは、json.loads()
でJSON文字列をPythonの辞書に変換し、json.dumps()
で辞書を再度JSON文字列に変換します。その後、highlight()
関数を使用してシンタックスハイライトを付けます。
以上がPythonでJSONを整形する方法です。これらの方法を使用することで、JSONを見やすく整形することができます。