[Python]JSONを読み込む(pandas dataframe、url、utf-8)

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の読み込み方法についても説明しました。また、エラーが出たときの対処法についても説明しました。