オーダーメイドコース
icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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] 未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

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を使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。