【Python】リスト(list)からjsonに変換する方法

【Python】リスト(list)からjsonに変換する方法

公開: 更新:



Pythonのリスト(list)形式をjson形式に変換する方法

Pythonのリストデータ構造をjson形式に変換するには、標準ライブラリjsonモジュールを使用します。jsonモジュールにはdumps関数が用意されており、Pythonのデータ構造をjson文字列に変換できます。変換処理はインポートするだけで使えるため、ライブラリの追加インストールは必要ありません。

import json
data_list = ["りんご", "バナナ", "オレンジ"]
json_string = json.dumps(data_list)
print(json_string)
["りんご", "バナナ", "オレンジ"]
詳細説明
1行目 jsonモジュールをインポート
2行目 変換するリストデータを定義
3行目 json.dumps関数を使用してリストをjson文字列に変換
4行目 変換結果を表示

json変換時にインデント(字下げ)を追加すると、出力結果が読みやすくなります。dumps関数のindentパラメータに数値を指定することで、指定した数値分のスペースでインデントが適用されます。また、日本語などの非ASCII文字を正しく表示するには、ensure_ascii=Falseを設定する必要があることを覚えておくと良いでしょう。

【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」

Pythonの複雑なリスト(list)構造をjsonに変換する方法

Pythonでは「入れ子になったリスト」や「リストと辞書を組み合わせた複雑なデータ構造」もjson形式に変換できます。階層構造を持つデータもjsonとして扱えるようになる為、特にWeb APIでデータをやり取りする場合やファイル保存時に役立ちます。

【サンプルコード】
import json
complex_list = [
    {"name": "鈴木", "scores": [85, 90, 78]},
    {"name": "佐藤", "scores": [92, 88, 76]}
]
json_string = json.dumps(complex_list, indent=2, ensure_ascii=False)
print(json_string)
【実行結果】
[
  {
    "name": "鈴木",
    "scores": [
      85,
      90,
      78
    ]
  },
  {
    "name": "佐藤",
    "scores": [
      92,
      88,
      76
    ]
  }
]
詳細説明
1行目 jsonモジュールをインポート
2行目 複雑なリスト構造(リストと辞書の組み合わせ)を定義
3行目 リストの1つ目の要素として辞書データを定義
4行目 リストの2つ目の要素として辞書データを定義
5行目 リスト終了の閉じ括弧
6行目 json.dumps関数でリストをJSON文字列に変換(indent=2で整形、ensure_ascii=Falseで日本語対応)
7行目 変換結果を表示

リスト(list)から変換したjsonデータをファイルとして保存する方法

変換したjsonデータをファイルとして保存するには、json.dump関数を使用します。json.dump関数はdumpsと似ていますが、直接ファイルオブジェクトに書き込む点が異なります。ファイル保存によって、生成したjsonデータを永続化したり他のシステムと共有したりすることも可能です。

import json
user_list = [
    {"id": 1, "name": "田中", "active": True},
    {"id": 2, "name": "山田", "active": False}
]
with open("users.json", "w", encoding="utf-8") as f:
    json.dump(user_list, f, indent=4, ensure_ascii=False)
print("JSONファイルが保存されました")
詳細説明
1行目 jsonモジュールをインポート
2行目 保存するリストデータを定義
3行目 リストの1つ目の要素として辞書データを定義
4行目 リストの2つ目の要素として辞書データを定義
5行目 リスト終了の閉じ括弧
6行目 ファイルを書き込みモードで開き、UTF-8エンコーディングを指定
7行目 json.dump関数でリストをファイルに直接書き込み(インデントと日本語対応を設定)
8行目 保存完了メッセージを表示

ファイル保存時はopen関数で書き込みモード("w")を指定し、エンコーディングにはutf-8を使用します。json.dump関数はdumpsと同様にインデントや文字エンコードのオプションが指定できるため、必要に応じて適切なパラメータを設定できます。

【PR】『Python』を学べる企業・個人向けのプログラミングコース

jsonの文字列をPythonのリスト(list)に変換する方法

json.loads関数を使用することによって、jsonの文字列をPythonのリストに戻す処理も簡単に行えます。ファイルからjsonデータを読み込む場合、json.load関数を使用します。jsonとPythonオブジェクト間の双方向変換が実現できる為、頭の片隅に入れておきましょう。

【サンプルコード】
import json
json_string = '["りんご", "バナナ", "オレンジ"]'
python_list = json.loads(json_string)
print(python_list)
print(type(python_list))
with open("users.json", "r", encoding="utf-8") as f:
    loaded_data = json.load(f)
print(loaded_data)
【実行結果】
['りんご', 'バナナ', 'オレンジ']

[{'id': 1, 'name': '田中', 'active': True}, {'id': 2, 'name': '山田', 'active': False}]
詳細説明
1行目 jsonモジュールをインポート
2行目 変換元となるjson文字列を定義
3行目 json.loads関数を使用してjson文字列をPythonリストに変換
4行目 変換結果を表示
5行目 変換されたデータの型を表示
6行目 jsonファイルを読み込みモードで開き、UTF-8エンコーディングを指定
7行目 json.load関数でファイルからjsonデータを読み込みPythonオブジェクトに変換
8行目 ファイルから読み込んだデータを表示

json文字列からPythonオブジェクトへの変換では、jsonの配列はPythonのリストに、jsonのオブジェクトはPythonの辞書に自動的に変換されます。また、true/falseはPythonのTrue/Falseに、nullNoneに変換されるため、データ型の対応を意識する必要はありません。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する