
【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
に、null
はNone
に変換されるため、データ型の対応を意識する必要はありません。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- 【Python】仮想環境から抜ける方法
- 【Python】文字列から改行コードを除去する方法
- 【Python】10回の繰り返し処理を実装する方法
- 【Python】df(DataFrame)とは?基本的な使い方やデータ操作について解説
- 【Python】指定のファイルがあれば削除する方法
ITやプログラミングに関するニュース
- Azure SQL Managed InstanceがVector型Public Preview対応開始、AI駆動アプリケーション開発の効率化を実現
- GoogleがGmailアプリにGeminiサマリーカードを導入、メール要約の自動表示機能が利用可能に
- ZenchordとNottaが共同開発したAIイヤホンZenchord 1をMakuakeで先行公開、音声認識から議事録作成まで自動化
- Ideinが音声解析AIサービス「Phonoscape」の提供を開始、対面接客現場での会話データ活用が可能に
- Microsoftが.NET 10 Preview 4でdotnet run app.cs機能をリリース、プロジェクトファイル不要でC#実行が可能に