【Python】JSONファイルの読み込み、変数へのアクセス方法を解説!

どーもTakeです。

この記事では、Python で JSON形式データの取り扱い方法について解説します!

 

具体的には下記項目についてです!

  1. JSONとは?
  2. JSON ファイルの読み込み
  3. JSON データ形式の値へのアクセス
  4. JSON ファイルへ書き込み

 

個人的に一番難しいと思うところは、「JSON データ形式の値へのアクセス」です。

 

たとえば、下記のようなJSONデータがあるとします。

引用元 : Google Directions API 公式ページ

 

上記は Google Directions API という Google の経路情報を取得できる API から取得できるデータの一部です。

仕事で「これを配列 or データにいれてくれーい」とお客さんからいわれたんですね(イヤー大変でした...)

しかしコツをつかめば、どんな複雑なデータ形式でも必ず取得できるようになります

 

この記事では、そういった JSON のデータの取り扱いについてご紹介します!!

 

JSONとは?

JSON (JavaScript Object Notation)とは、JavaScriptのオブジェクトリテラル記法のことです。

 

なんのこっちゃ」と思うかもしれませんが、こいつを使えば異なるプログラミング言語でもデータのやり取りができるんです!

これがすごく便利な特徴で、あるデータがPythonやPHP、JavaScript で読み込むことも可能です!

 

そのため Google やシステムトレードのなどの API で利用されています。

本当に便利なデータ形式なので、知っておいて絶対に損がない知識です!

 

JSON ファイルの読み込み

たとえば、下記内容の 「test.json」という JSON ファイルがあります。

 

このJSON ファイルの読み込み方法について、下記のソースコードのようにします。

 

上記ソースコードについて順番に説明します。

JSON ファイルの読み込み方法
  1. json モジュールをインポートします。
  2. open メソッドを用いて、test.json (JSONデータを格納しているファイル)を開き、json_open に格納します。
  3. その json_open を「JSON データ形式として」読み込み、 json_data に格納します。
  4. 最後に print メソッドで 「json_data 」を表示させます。

 

出力結果は下記になります。

 

JSON データ形式の値へのアクセス

たとえば、下記内容の 「test.json」という JSON ファイルがあります。

 

上記ファイルを読み込み、各変数にアクセスする方法について説明します。

まずは簡単なところからいきます。

 

上記の「status」の値である「OK」にアクセスしようとする場合、下記のようにすれば OK です。

 

「status」の値である「OK」を取得するためには、

  • json_data['status']
  • json_data.get('status')

 

のどちらかの値でやれば「OK」という値が表示されます。

 

つぎに少しややこしいところをいきます。

下記の「geocoded_waypoints」-> geocoder_status の値「OK」を取得する場合を考えます。

 

JSON のややこしいところは括弧がめっちゃあるところだと思います。

そんなときは下記を参考にしてください。

JSON データ形式の括弧について
  1. [] 鍵括弧 ・・・ 配列
  2. {} 波括弧 ・・・ 辞書型変数

 

geocoded_waypoints : [ { ~ } ] とは、geocoded_waypoints にさらに辞書型変数があってそれが配列で構成されていると思ってください。

 

ソースコードは下記になります。

 

上記の[0]とは配列のインデックスです。

例えば、array[0] = apple、array[1] = banana ・・・という配列がある場合、

[0]番目の値を参照する場合、array[0] とすると思います。

 

これと同じ要領で、geocoded_waypoints の[0]番目の値を参照するために

geocoded_waypoints [0]とし、その値の['geocoder_status']にアクセスすれば値がとれるということです。

 

つまり下記どちらかの値を指定すれば値が取れます。

  • json_data['geocoded_waypoints'][0]['geocoder_status']
  • json_data.get('geocoded_waypoints')[0].get('geocoder_status')

 

JSON ファイルへ書き込み

JSON ファイルへの書き込み方法について、下記のソースコードで実施します。

 

 

上記は「human」という辞書型変数があり、それを「test.json」に格納した場合の処理を記述しています。

JSON ファイルの読み込み方法
  1. json モジュールをインポートします。
  2. 「human」という辞書型変数を定義します。
  3. open で書き込み先のファイル「test.json」で開きます。
  4. json.dump メソッドをもちいて、辞書型変数「human」をファイル「test.json」に書き込みます。

 

最後に

いかがでしたでしょうか?

世の中には、JSON データ形式で扱われる API が様々なあります。

 

この記事を参考にぜひ JSON データ形式をマスターしていただければ幸いです。

ではでは。

 

プログラミング学習、独学では難しくないですが?
  • プログラミングをどう勉強したらいいのかわからない
  • わかりにくい参考書が多く、自分一人では解決できそうにない
  • 壁にぶつかった時の解決策がわからない
そんな人にはプログラミングスクールtech boost」がおすすめです。

 
 

プログラミングスクールtech boost」の魅力
  1. オーダメイドの自分の目標にあったプランが受講できる!
  2. 現役エンジニアがあなたの学習を全力サポート!
  3. スクール卒業後のキャリアサポートも充実インターン/就職/転職/独立 など
  4. オリジナル Web アプリも作れるようになります!
  5. 近年トレンドの AI や IoT、ブロックチェーンも学習できます!
  6. 受講スタイル(通学かオンライン授業)も選択可能!

 

こんな人におすすめ!

  • 未経験からでもプログラミングをしっかり学びたい!

未経験からでも受講期間中にオリジナルサービス開発レベルまで全力でサポートします。

 

  • プログラミングを一人で学ぶことに限界を感じた!

未経験で一からプログラミング学習するには限界があります。

現役エンジニアがあなたの目標に沿った学習プランを提案してくれるので安心して学習できます。

 

  • 技術力をつけて、IT企業に就職やフリーランス、独立を目指したい!

卒業後のキャリアサポートも充実しているため、未経験からも IT 業界に参入できます。

 

悩んでいるなら、お気軽に無料説明会へ!

現役エンジニアの私がいいますが、IT 業界は圧倒的な人材不足です。

 

スクールは料金が高いからなあ」と悩まれている人もいると思いますが、

IT業界は仕事が有り余っているため、一度学べば速攻で資金回収できます。

 

もしプログラミング学習で悩んでいたり将来的に IT企業、フリーランスなどで働きたいのであれば、

プログラミングスクール「tech boost」へ無料相談だけでもいってみてはいかがでしょうか?

おすすめの記事