PythonでJSONを読み込む方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでJSONを読み込む方法について現役エンジニアが解説しています。JSONはテキストベースで軽量にデータ交換のできるフォーマットのことです。Pythonではjsonモジュールがあり、dumpsメソッドを使うとjson形式に変換することが出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PythonでJSONを読み込む方法について解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでJSONを読み込む方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

JSONとは

JSONとは、JavaScript Object Notationの略であり、テキストベースで軽量にデータ交換のできるフォーマットのことです。JavaScriptとありますが、Pythonを含め多くのプログラミング言語やシステムで使われています。

{“key”: “value”}のように、項目名と値をダブルクォーテーション(“)で囲み、コロン(:)で対応づけ、中括弧({})で閉じたものが、よくあるJSON形式のデータです。

より詳細な情報は「JSON」で検索すると出てきますので、興味のある方は調べてみてください。

dumps()の使い方

PythonでJSONの解析や出力をするためには標準ライブラリのjsonを使用します。

import json

json.dumps()の引数に変数や値を渡すことで、JSON形式に変換ができます。

import json
print(json.dumps({'key': 'value', "key2": "value"}))
# => {"key": "value", "key2": "value"}

上記のように、シングルクォーテーション(‘)やダブルクォーテーション(“)の混ざった値でも、ダブルクォーテーションに変換してくれます。

また、見やすく表示したい場合にはindentパラメータを一緒に指定すると、人間が読みやすい形式に変換もできます。

import json
print(json.dumps({'key': 'value', "key2": "value"}, indent=4))
# => {
# "key": "value",
# "key2": "value"
#    }

反対にJSON形式の文字列を解析して、Pythonで扱いやすい情報に変換するにはjson.loads()を使います。あわせて覚えておくと良いでしょう。

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

json.dumps()で色々と変換してみましょう。JSONでは配列や数値も扱うことができます、変換してみましょう。

import json
print(json.dumps({'apple': 'red', 'sizes': [10, 20, 30]}))
# => {"apple": "red", "sizes": [10, 20, 30]}

またPythonでのTrue, Falseは、小文字のtrue, falseに変換されます。

import json
print(json.dumps({'happy': True, 'unhappy': False}))
# => {"happy": true, "unhappy": false}
None は null に変換されます。
import json
print(json.dumps({'items': None}))
# => {"items": null}

最後に複合的なデータを変換してみます。indentパラメータを指定して見やすい形で出力してみましょう。

import json
data = {
 'users': [{
  'name': 'taro',
  'age': 18,
  'hobbies': ['tennis', 'soccer', 'piano'],
  'is_married': False,
  'friends': None
 }]
}
print(json.dumps(data, indent=4))
# => {
# "users": [
#    {
#      "name": "taro",
#      "age": 18,
#      "hobbies": [
#         "tennis",
#         "soccer",
#          "piano"
#                ],
#     "is_married": false,
#            "friends": null
#      }
#        ]
#    }

 

監修してくれたメンター

メンター稲員さん

フリーランスエンジニア。
大手SEからフリーランスのWeb系エンジニアにジョブチェンジ。

経験言語:Ruby、Rails、Python、C/C++、Java、Perl、HTML/CSS3、JavaScript、CoffeeScript,Node.js。
おうち大好きマンです。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。