[Python] jsonを読み込んでリストに変換する方法

Pythonでは、JSONデータをリストに変換するためにjsonモジュールを使用します。

このモジュールのloads関数を使うことで、JSON形式の文字列をPythonのリストや辞書に変換できます。

JSONデータがリスト形式である場合、loads関数を適用すると直接リストとして取得できます。

この方法は、APIから取得したデータやファイルから読み込んだJSONデータをPythonで操作する際に非常に便利です。

この記事でわかること
  • PythonでJSONファイルや文字列を読み込む方法
  • JSONデータをリストに変換する具体的な手法
  • リスト内のデータ操作やフィルタリング、ソートの方法
  • Web APIから取得したJSONデータの活用法
  • JSONデータをCSVに保存する手順

目次から探す

JSONをPythonで読み込む方法

Pythonでは、JSONデータを簡単に読み込むことができます。

ここでは、jsonモジュールを使用して、JSONデータをPythonで扱う方法を解説します。

json.load()を使ったファイルの読み込み

json.load()は、JSON形式のファイルを読み込むための関数です。

以下に、JSONファイルを読み込むサンプルコードを示します。

import json
# JSONファイルを開く
with open('data.json', 'r', encoding='utf-8') as file:
    # JSONファイルをPythonオブジェクトに変換
    data = json.load(file)
# 読み込んだデータを表示
print(data)
{'name': '太郎', 'age': 30, 'city': '東京'}

このコードでは、data.jsonというファイルを開き、その内容をPythonの辞書型に変換しています。

with文を使うことで、ファイルを自動的に閉じることができ、安全にファイル操作を行えます。

json.loads()を使った文字列の読み込み

json.loads()は、JSON形式の文字列をPythonオブジェクトに変換するための関数です。

以下に、JSON文字列を読み込むサンプルコードを示します。

import json
# JSON形式の文字列
json_string = '{"name": "花子", "age": 25, "city": "大阪"}'
# JSON文字列をPythonオブジェクトに変換
data = json.loads(json_string)
# 読み込んだデータを表示
print(data)
{'name': '花子', 'age': 25, 'city': '大阪'}

このコードでは、JSON形式の文字列を直接Pythonの辞書型に変換しています。

json.loads()を使うことで、ファイルを介さずに文字列からデータを取得できます。

読み込んだデータの型確認

JSONデータを読み込んだ後、そのデータの型を確認することが重要です。

Pythonでは、type()関数を使ってデータの型を確認できます。

import json
# JSON形式の文字列
json_string = '{"name": "次郎", "age": 20, "city": "名古屋"}'
# JSON文字列をPythonオブジェクトに変換
data = json.loads(json_string)
# データの型を確認
print(type(data))
<class 'dict'>

このコードでは、json.loads()で変換したデータの型を確認しています。

JSONオブジェクトはPythonの辞書型に変換されるため、<class 'dict'>と表示されます。

データの型を確認することで、後続の処理で適切にデータを扱うことができます。

JSONデータをリストに変換する方法

JSONデータをPythonで扱う際、リストに変換することがよくあります。

ここでは、JSONデータをリストに変換する方法を解説します。

JSONオブジェクトからリストへの変換

JSONオブジェクトは通常、Pythonの辞書型に変換されますが、特定のキーの値をリストとして扱いたい場合があります。

以下に、JSONオブジェクトからリストを抽出するサンプルコードを示します。

import json
# JSON形式の文字列
json_string = '{"fruits": {"apple": 3, "banana": 5, "cherry": 7}}'
# JSON文字列をPythonオブジェクトに変換
data = json.loads(json_string)
# 特定のキーの値をリストに変換
fruits_list = list(data['fruits'].keys())
# リストを表示
print(fruits_list)
['apple', 'banana', 'cherry']

このコードでは、fruitsキーの値をリストに変換しています。

list()関数を使って、辞書のキーをリストとして抽出しています。

JSON配列からリストへの変換

JSON配列は、Pythonのリスト型に直接変換されます。

以下に、JSON配列をリストに変換するサンプルコードを示します。

import json
# JSON形式の文字列
json_string = '["red", "green", "blue"]'
# JSON文字列をPythonオブジェクトに変換
color_list = json.loads(json_string)
# リストを表示
print(color_list)
['red', 'green', 'blue']

このコードでは、JSON配列をそのままPythonのリストとして扱っています。

json.loads()を使うことで、JSON配列を簡単にリストに変換できます。

ネストされたJSONからリストを抽出する方法

ネストされたJSONデータから特定のリストを抽出することも可能です。

以下に、ネストされたJSONからリストを抽出するサンプルコードを示します。

import json
# JSON形式の文字列
json_string = '{"department": {"name": "営業", "employees": ["佐藤", "鈴木", "高橋"]}}'
# JSON文字列をPythonオブジェクトに変換
data = json.loads(json_string)
# ネストされたリストを抽出
employees_list = data['department']['employees']
# リストを表示
print(employees_list)
['佐藤', '鈴木', '高橋']

このコードでは、departmentキーの中にあるemployeesキーのリストを抽出しています。

ネストされたJSONから特定のリストを取得するには、キーを順に指定してアクセスします。

これにより、複雑なJSONデータから必要な情報を効率的に取り出すことができます。

JSONデータの操作

JSONデータをリストに変換した後、Pythonではそのリストを様々な方法で操作することができます。

ここでは、リスト内のデータ操作、フィルタリング、検索、ソートについて解説します。

リスト内のデータを操作する

リスト内のデータを操作することで、データの追加、削除、更新が可能です。

以下に、リスト内のデータを操作するサンプルコードを示します。

# リストの初期化
fruits = ['apple', 'banana', 'cherry']
# データの追加
fruits.append('orange')
# データの削除
fruits.remove('banana')
# データの更新
fruits[0] = 'grape'
# リストを表示
print(fruits)
['grape', 'cherry', 'orange']

このコードでは、リストにデータを追加したり、特定のデータを削除したり、既存のデータを更新したりしています。

append()remove()、インデックス指定による更新が基本的な操作です。

リストのフィルタリングと検索

リスト内のデータをフィルタリングしたり、特定の条件に基づいて検索することができます。

以下に、フィルタリングと検索のサンプルコードを示します。

# リストの初期化
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 偶数のみをフィルタリング
even_numbers = [num for num in numbers if num % 2 == 0]
# 特定の値を検索
is_five_present = 5 in numbers
# フィルタリング結果を表示
print(even_numbers)
# 検索結果を表示
print(is_five_present)
[2, 4, 6, 8, 10]
True

このコードでは、リスト内の偶数をフィルタリングし、新しいリストを作成しています。

また、in演算子を使って特定の値がリストに存在するかどうかを確認しています。

リストのソートと並び替え

リスト内のデータをソートすることで、データを昇順または降順に並び替えることができます。

以下に、リストのソートと並び替えのサンプルコードを示します。

# リストの初期化
names = ['John', 'Alice', 'Bob', 'Charlie']
# 昇順にソート
names.sort()
# 降順にソート
names.sort(reverse=True)
# ソート結果を表示
print(names)
['John', 'Charlie', 'Bob', 'Alice']

このコードでは、sort()メソッドを使ってリストを昇順にソートし、その後、reverse=Trueを指定して降順にソートしています。

リストのソートは、データの整理や分析に役立ちます。

応用例

JSONデータをリストに変換することで、さまざまな応用が可能になります。

ここでは、データ分析、Web APIからのデータ取得、CSVへの保存といった応用例を紹介します。

JSONデータをリストに変換してデータ分析

JSONデータをリストに変換することで、データ分析を行うことができます。

以下に、JSONデータをリストに変換して簡単なデータ分析を行うサンプルコードを示します。

import json
# JSON形式の文字列
json_string = '{"sales": [100, 200, 150, 300, 250]}'
# JSON文字列をPythonオブジェクトに変換
data = json.loads(json_string)
# リストを取得
sales_list = data['sales']
# データ分析:平均売上を計算
average_sales = sum(sales_list) / len(sales_list)
# 平均売上を表示
print(f'平均売上: {average_sales}')
平均売上: 200.0

このコードでは、売上データをリストに変換し、平均売上を計算しています。

リストを使うことで、データの集計や統計的な分析が容易になります。

Web APIから取得したJSONをリストに変換

Web APIから取得したJSONデータをリストに変換することで、データをプログラム内で扱いやすくなります。

以下に、Web APIからJSONを取得し、リストに変換するサンプルコードを示します。

import requests
import json
# Web APIからJSONデータを取得
response = requests.get('https://api.example.com/data')
json_data = response.json()
# JSONデータをリストに変換
items_list = json_data['items']
# リストを表示
print(items_list)
['item1', 'item2', 'item3']

このコードでは、requestsライブラリを使ってWeb APIからデータを取得し、json()メソッドでJSONデータをPythonオブジェクトに変換しています。

APIからのデータ取得は、リアルタイムな情報を扱う際に非常に便利です。

JSONデータをリストに変換してCSVに保存

JSONデータをリストに変換し、CSVファイルに保存することで、データを他のアプリケーションで利用しやすくなります。

以下に、JSONデータをCSVに保存するサンプルコードを示します。

import json
import csv
# JSON形式の文字列
json_string = '{"users": [{"name": "太郎", "age": 30}, {"name": "花子", "age": 25}]}'
# JSON文字列をPythonオブジェクトに変換
data = json.loads(json_string)
# CSVファイルに保存
with open('users.csv', 'w', newline='', encoding='utf-8') as csvfile:
    fieldnames = ['name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    # ヘッダーを書き込む
    writer.writeheader()
    # データを書き込む
    for user in data['users']:
        writer.writerow(user)
CSVファイル 'users.csv' が作成され、以下の内容が保存されます。
name,age
太郎,30
花子,25

このコードでは、JSONデータをリストに変換し、csvモジュールを使ってCSVファイルに保存しています。

CSV形式は、データの共有や他のツールでの分析に適しています。

よくある質問

JSONデータが大きすぎる場合はどうする?

大きなJSONデータを扱う際には、メモリの使用量を考慮する必要があります。

以下の方法を検討してください:

  • ストリーミング処理jsonモジュールの代わりにijsonライブラリを使用して、データをストリームとして処理することで、メモリ使用量を抑えることができます。
  • データの分割:大きなJSONファイルを複数の小さなファイルに分割し、必要な部分だけを読み込むようにします。
  • データベースの利用:JSONデータをデータベースに保存し、必要なデータをクエリで取得する方法もあります。

JSONの読み込みエラーが発生した場合の対処法は?

JSONの読み込みエラーは、データの形式が正しくない場合に発生します。

以下の対処法を試してください:

  • JSONの形式を確認:JSONデータが正しい形式であるかを確認します。

特に、カンマの付け忘れや不正な文字がないかをチェックします。

  • エラーメッセージを確認:Pythonのエラーメッセージを確認し、どの部分でエラーが発生しているかを特定します。
  • オンラインツールの利用:JSONのバリデーションツールを使って、データの形式を検証することも有効です。

JSONからリストに変換する際の注意点は?

JSONからリストに変換する際には、以下の点に注意してください:

  • データ型の確認:JSONデータをリストに変換した後、データ型が期待通りであるかを確認します。

特に、ネストされたデータ構造の場合は注意が必要です。

  • キーの存在確認:リストに変換する際に、指定したキーが存在するかを確認し、存在しない場合のエラーハンドリングを行います。
  • データの整合性:リストに変換したデータが、元のJSONデータと整合性が取れているかを確認します。

まとめ

この記事では、PythonでJSONデータをリストに変換する方法とその応用例について詳しく解説しました。

JSONデータの読み込みからリストへの変換、データ操作、応用例までを網羅し、実践的な知識を提供しました。

これを機に、Pythonを使ったデータ処理のスキルをさらに磨き、実際のプロジェクトで活用してみてください。

  • URLをコピーしました!
目次から探す