Pythonでインデントを指定して整形されたJSONファイルを出力する方法

この記事では、Pythonを使ってインデントを指定して整形されたJSONファイルを出力する方法を解説します。具体的なコード例とその解説、さらに応用例を含めています。

目次

はじめに

JSON(JavaScript Object Notation)は、データ交換のための軽量なフォーマットです。Pythonでは、`json` モジュールを使ってJSONデータの読み書きが可能です。この記事では、特にJSONデータを整形してファイルに出力する手法に焦点を当てます。

基本的な出力方法

PythonでJSONファイルを出力する基本的な方法を紹介します。

json.dump()メソッド

Pythonの`json`モジュールには、`dump()`というメソッドがあります。このメソッドを使うと、PythonオブジェクトをJSONファイルとして保存することができます。

基本的な使用方法

import json

data = {
  'name': 'Taro',
  'age': 30,
  'city': 'Tokyo'
}

with open('data.json', 'w') as f:
  json.dump(data, f)

このコードでは、`data` というPythonのディクショナリを `data.json` という名前で保存しています。

インデントの指定

`dump()`メソッドには、`indent`という引数があります。この引数に整数値を指定すると、その数値分のスペースでインデントされた形でJSONが出力されます。

import json

data = {
  'name': 'Taro',
  'age': 30,
  'city': 'Tokyo'
}

with open('data_indent.json', 'w') as f:
  json.dump(data, f, indent=4)

こちらのコードを実行すると、4つのスペースでインデントされたJSONが出力されます。

応用例

基本的な方法を把握したところで、応用例をいくつか見ていきましょう。

複数のデータを出力する

Pythonでリストや辞書の中に別の辞書やリストを持たせることができます。これを利用して複数のデータをまとめて出力する例です。

import json

# 複数のデータを持つリスト
people = [
    {'name': 'Taro', 'age': 30, 'city': 'Tokyo'},
    {'name': 'Jiro', 'age': 25, 'city': 'Osaka'},
    {'name': 'Saburo', 'age': 20, 'city': 'Nagoya'}
]

with open('people.json', 'w') as f:
    json.dump(people, f, indent=4)

Unicode文字をエスケープせずに出力する

`ensure_ascii`パラメータを`False`にすると、Unicode文字をエスケープせずに出力できます。

import json

data = {
  'name': '太郎',
  'age': 30,
  'city': '東京'
}

with open('data_unicode.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, indent=4, ensure_ascii=False)

キーをソートして出力する

`sort_keys`パラメータを`True`にすると、ディクショナリのキーがソートされた状態で出力されます。

import json

data = {
  'name': 'Taro',
  'age': 30,
  'city': 'Tokyo'
}

with open('data_sorted.json', 'w') as f:
    json.dump(data, f, indent=4, sort_keys=True)

まとめ

PythonでのJSONファイル出力は`json`モジュールを使用することで簡単に行えます。特にインデントを指定することで、人間が読みやすい形式での出力が可能です。応用例を通じて、さまざまな出力オプションも紹介しましたので、ぜひ参考にしてください。

コメント

コメントする

目次