PythonでJSONを読み込む方法について
Pythonには、JSONを読み込むための標準ライブラリ「json」があります。このライブラリを使うことで、JSON形式のデータをPythonの辞書型やリスト型に変換したり、逆にPythonのデータをJSON形式に変換することができます。
pandasを使ったJSONの読み込みとdataframeへの変換
pandasを使うと、JSONファイルを簡単にdataframeに変換することができます。
import pandas as pd # JSONファイルをdataframeに変換する df = pd.read_json('sample.json') print(df)
上記の例では、”sample.json”というファイルを読み込み、その中身をdataframeに変換しています。
URLからJSONを読み込む方法
URLからJSONファイルを読み込む場合は、urllibを使います。
import urllib.request import json # JSONファイルがあるURLを指定する url = 'https://example.com/sample.json' # URLからJSONを読み込む response = urllib.request.urlopen(url) data = response.read() # JSONを辞書型に変換する json_data = json.loads(data) # 辞書型を出力する print(json_data)
上記の例では、”https://example.com/sample.json”というURLからJSONファイルを読み込み、その中身を辞書型に変換しています。
utf-8でエンコードされたJSONの読み込み
JSONファイルがutf-8でエンコードされている場合は、以下のようにして読み込みます。
import json # utf-8でエンコードされたJSONファイルを読み込む with open('sample.json', 'r', encoding='utf-8') as f: data = f.read() # JSONを辞書型に変換する json_data = json.loads(data) # 辞書型を出力する print(json_data)
上記の例では、”sample.json”というファイルがutf-8でエンコードされている場合に読み込み、その中身を辞書型に変換しています。
各読み込み方法のコードサンプルと実行結果
それぞれの読み込み方法のコードサンプルと実行結果を以下に示します。
pandasを使ったJSONの読み込みとdataframeへの変換
import pandas as pd # JSONファイルから直接dataframeを読み込む df = pd.read_json('sample.json') print(df)
実行結果:
name age 0 John 23 1 Emily 24 2 Jack 25
URLからJSONを読み込む方法
import urllib.request import json # JSONファイルがあるURLを指定する url = 'https://example.com/sample.json' # URLからJSONを読み込む response = urllib.request.urlopen(url) data = response.read() # JSONを辞書型に変換する json_data = json.loads(data) # 辞書型を出力する print(json_data)
実行結果:
{'name': 'John', 'age': 23}
utf-8でエンコードされたJSONの読み込み
import json # utf-8でエンコードされたJSONファイルを読み込む with open('sample.json', 'r', encoding='utf-8') as f: data = f.read() # JSONを辞書型に変換する json_data = json.loads(data) # 辞書型を出力する print(json_data)
実行結果:
{'name': 'John', 'age': 23}
エラーが出たときの対処法
JSONを読み込む際に、以下のようなエラーが出ることがあります。
- JSONDecodeError: Expecting value
- FileNotFoundError: [Errno 2] No such file or directory
- HTTPError: HTTP Error 404: Not Found
これらのエラーに対処するには、以下のようにします。
JSONDecodeError: Expecting value
JSONDecodeError: Expecting valueというエラーが出た場合は、JSONファイルの形式が正しくない可能性があります。JSONファイルを再度確認し、正しい形式に修正してください。
FileNotFoundError: [Errno 2] No such file or directory
FileNotFoundError: [Errno 2] No such file or directoryというエラーが出た場合は、指定したファイルが存在しない可能性があります。ファイルのパスを再度確認し、正しいパスを指定してください。
HTTPError: HTTP Error 404: Not Found
HTTPError: HTTP Error 404: Not Foundというエラーが出た場合は、指定したURLが存在しない可能性があります。URLを再度確認し、正しいURLを指定してください。
まとめ
PythonでJSONを読み込む方法について説明しました。pandasを使ったJSONの読み込みや、URLからJSONを読み込む方法、utf-8でエンコードされたJSONの読み込み方法についても説明しました。また、エラーが出たときの対処法についても説明しました。