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()を使います。あわせて覚えておくと良いでしょう。
実際に書いてみよう
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 # } # ] # }
監修してくれたメンター
メンター稲員さん
フリーランスエンジニア。 経験言語:Ruby、Rails、Python、C/C++、Java、Perl、HTML/CSS3、JavaScript、CoffeeScript,Node.js。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。