注目キーワード

【Python】JSONデータをparseして辞書データに変換して扱う

JSONはJavaScriptのオブジェクトの書き方にならったデータの表現方法で、キーと値の組でデータを管理します。特にWebAPIを使う場面など、いろんな場面でデータを表すために利用することがあります。こちらの記事ではJSONデータをパースしたり、Pythonのデータとして変換したりし、便利に使う方法を確認していきます。

JSONをparseする基本的な方法

事前にサンプルのデータ (data.json) をファイルに用意しました。こちらのファイルにpythonからアクセスしてみます。

サンプルデータ(data.json)

こちらのコードブロックにもサンプルデータを起きました。

{ "1": {  "name": "北海道",  "area": 83450,  "population": 528.1 }, "2":{  "name": "青森",  "area": 9646,  "population": 124.9 }, "3": {  "name": "岩手",  "area": 15280,  "population": 122.9 }}

JSONファイルをparseするサンプルソース

サンプルの実装です。

1行目では jsonモジュールをインポートします。

2行目-3行目ではjsonファイルにアクセスします。まず2行目で通常のファイルを読み込むように data.json へアクセスし、データを json.load() に渡すことでデータを読み込み(パース)します。

4行目では読み込んだ結果のデータを標準出力へ出力します。

実行結果

実行結果です。JSONではキーと値の組でデータを表現しており、サンプルデータの1、2、3のキーがそれぞれ北海道、青森、岩手のデータとなっており、出力した結果からもデータ読み込み・パース・出力ができていることが分かります。

ファイルを読み込んで出力する例

JSONの文字列データをparseする

先程の例ではファイルからJSONデータを読み込みました。一方で、pythonの文字列がJSONのデータになっている場合に、データを読み込むことができます。実際に使ってみます。

文字列からデータを読み込む場合のサンプルソース

サンプルの実装です。json.loads() を使って、文字列のJSONをパースして、データに変換できます。

実行結果

実行した結果、文字で書かれているJSONデータから、name/area/populationへアクセスできたことが分かります。

JSON文字列データをパースする実行例

こうしてファイルに保存されたJSONデータも、文字列で得られるJSONデータも、いずれもPythonの辞書に変換して扱えることが分かりました。こちらの記事では入力する方に注目して例を説明しましたが、似たように出力する方も可能です。

スポンサーリンク

最初にも述べたとおり、WebのAPIへアクセスする場合など、JSONデータを扱う場合が多くなってきています。JSONファイルとJSON文字列の扱いをこちらの例で確認し、使ってみてください。