【徹底解説】pandasでJSON形式のファイルを読み込む方法

pandasでJSON形式のファイルを読み込む方法【誰でもできます】プログラミング

こんにちは。さすをです。

以前、6,000万のPython案件に携わりました。

今回の記事は、Pythonのライブラリの一つであるpandasを使って、JSON形式のファイルを読み込む方法を紹介していきます。

それでは本文をどうぞ。

pandasを使ってJSONファイルを読み込みたいんだけど、どうすればいいの、、

pandasでjsonを読み込みたい女性
pandasでjsonを読み込みたい女性
さすを
さすを

その悩みを解決します!

この記事を読むとわかること:

・pandasを使ってJSONファイルを読み込む方法

・pandasを使って圧縮されたJSONファイルを読み込む方法

・pandasを使ってJSON Linesファイルを読み込む方法

筆者の情報:

・現役システムエンジニア 兼 副業ブロガー

・過去に6,000万のPython案件を受注


pandasライブラリをまだインストールしていない方は、【これだけ知っておけばOKです】 現役エンジニアもよく使う便利なPythonライブラリ22選から、インストールしてください。

スポンサーリンク

1.pandasでJSON形式のファイルを読み込む方法

1.pandasでJSON形式のファイルを読み込む方法

今回はsample.jsonというJSONデータを使用します。

sample.json:

{
    "age": {
        "satoshi": 40,
        "sho": 38,
        "jun": 37,
        "masaki": 38,
        "kazunari": 37
    },
    "color": {
        "satoshi": "brue",
        "sho": "red",
        "jun": "purple",
        "masaki": "green",
        "kazunari": "yellow"
    },
    "hobby": {
        "satoshi": "fishing",
        "sho": "rap",
        "jun": "smoothie",
        "masaki": "animal",
        "kazunari": "game"
    }
}

注意:JSON はダブルクォーテーション(“)で文字列を囲います。シングルクォーテーション(‘)で囲んだり、変数名をそのまま記述するとValueErrorとなります。

pandasを使ってJSONを読み込むためのスクリプトはこちらです。

import pandas as pd
import json

json_file = open('blog_data/sample.json', 'r')

df = pd.read_json(json_file)

print(df)
さすを
さすを

処理内容を一つずつ説明していきます!

import pandas as pd

pandasを使うためには、pandasライブラリをインポートする必要があります。

「as pd」は、pandasとpdは同じ意味として使用するという宣言なので気にしなくて大丈夫です。

import json

JSON 関連の関数を使うためには、 json モジュールをインポートする必要があります。

JSONを扱うときに必要なおまじないだと思いましょう。

json_file = open('blog_data/sample.json', 'r')

この行では、JSONファイルのパスを指定し、読み込んでいます。

‘blog_data/sample.json’の部分にファイルパスを指定しましょう。

‘r’はreadの略で、ファイルを読み込むという意味で使用します。

df = pd.read_json(json_file)

pd.read_jsonを使って、JSONファイルをDataFrame(pandasの独自の構造)として読み込みます。

DataFrameは、異なる型のデータを入れることができるというメリットがあります。

print(df)

読み込んだJSONファイルを表示します。

スクリプトの実行結果はこちらです。

         age   color     hobby
satoshi    40    brue   fishing
sho        38     red       rap
jun        37  purple  smoothie
masaki     38   green    animal
kazunari   37  yellow      game
さすを
さすを

JSONファイルを読み込むことができました!

2.pandasで圧縮されたJSON形式のファイルを読み込む方法

2.pandasで圧縮されたJSON形式のファイルを読み込む方法

圧縮されたJSON形式のファイルを読み込む場合は、引数にcompressionを追加すればOKです。

ファイル名にzipgzipbz2xzを指定することで、圧縮ファイルを直接読み込むことができます。

また、拡張子が.zip.gz.bz2.xzの場合はcompression=’infer’とすることで、圧縮方式が自動で選択されます。

import pandas as pd
import json

df_zip = pd.read_json('blog_data/sample.zip', compression='infer')

print(df_gzip)

注意:単独のファイルが圧縮されたもののみが対象で、複数ファイルがまとめられたzipは読み込めません。

3.pandasで改行で区切られているJSON形式のファイルを読み込む方法

3.pandasで改行で区切られているJSON形式のファイルを読み込む方法

改行で区切られているJSON形式のファイルは、JSON Lines(.jsonl)といいます。

JSON Linesの例:

{ "name": "satoshi", "age": 40, "color": "blue", "hobby": "fishing" }
{ "name": "sho", "age": 38, "color": "red", "hobby": "rap" }
{ "name": "jun", "age": 37, "color": "purple", "hobby": "smoothie" }
{ "name": "masaki", "age": 38, "color": "green", "hobby": "animal" }
{ "name": "kazunari", "age": 37, "color": "yellow", "hobby": "game" }

このようなファイルを読み込むためには引数にorient、linesを追加すればOKです。

import pandas as pd
import json

json_file = open('blog_data/sample.json', 'r')

df_jsonl = pd.read_json(json_file, orient='records', lines=True)

print(df_jsonl)

orient:pandas.DataFrameの行名、列名、値の形式を指定する。
orient=’record’の場合、keyが列ラベル、valueが値となる辞書を要素とするリストになる。

lines:JSONオブジェクトが1行ずつ書かれているとしてファイルを読み込む。デフォルトはFalse。

4.まとめ

4.まとめ

6,000万のPython案件に携わった経験のある筆者が、Pythonのライブラリの一つであるpandasを使って、JSON形式のファイルを読み込む方法を紹介してきました。

Python開発においてjsonを読み込むことは非常に多いので、改めて確認しておきましょう!

この記事が少しでもあなたの役に立てていたらうれしいです。

頑張るあなたを応援しています!

それでは!

コメント

タイトルとURLをコピーしました