【Python】JSONファイルの読み込み書き込み

Pythonの応用
スポンサーリンク

PythonでXMLファイルを扱いましたが、JSONフォーマットはWEB開発でさまざまに利用されています。

【Python】XMLファイルの読み込み書き込み
PythonでCSVファイル以外にも構造化されたテキストファイルがあります。その1つがXMLフォーマットです。ここではXMLの書き込み、読み込みを行います。最近はJSON形式が多いですが、XMLテータのやり取りの場面はいまだに多いです。

JSON(JavaScript Object Notation)は、JavaScriptをベースに作られた軽量のデータ交換フォーマットです。 XMLに比べて読みやすいですし、プログラム間でデータ交換をするための形式としてもとても優れていると言われています。

XMLの時と同様に、ここではJSONファイルについて扱っていこうと思います。

ここではXMLで使ったサンプルデータをJSONフォーマットで書いたものを用意しました。

{
    "fruit": 
        [
            {"name": "apple", "price": "100"}, 
            {"name": "orange", "price": "200"}
        ]
}

このJSONフォーマットのデータをPythonを使って操作していこうと思います。

スポンサーリンク

Pythonファイル上のJSONデータの読み込みと書き込み

このJSONデータはPythonの辞書型と同じ形式なので、Pythonのファイル上で扱うことができます。PythonでJSONを扱うにはjsonモジュールをインポートして使います。

Pythonファイル上にこのデータを記述し、printで出力してみるコードを書いてみましょう。

import json

fruits = {
    "fruit":
        [
            {"name": "apple", "price": "100"},
            {"name": "orange", "price": "200"}
        ]
}

print(fruits)
j = json.dumps(fruits)
print(j)
print(json.loads(j))

jsonモジュールをインポートします。JSONデータをそのまま記述し、変数fruitsに代入します。

それをそのままprintで出力するものと、dumps()で読み込んで出力するもの、loads()でスクリプト内に出力するものを書いています。

これを実行してみましょう。(ファイル名make_json.pyでAtomで実行しています。)

それぞれ出力されています。同じように見えますが、上側はPython形式、中側はダブルクォーテーションのJSON形式となっています。下側はPythonスクリプト内で使うためにdumps()で読み込み、loads()でオブジェクトしたものをprintでPython形式で出力しています。

シングルクォートとダブルクォートの違いに注意しましょう。

スポンサーリンク

JSONファイルの書き込み

次はこのデータをJSONファイルを作成して書き込んでみましょう。

ファイルの作成にはwithステートメントを使ってみます。

【Python】ファイルの作成と読み込み open,write,read,with,seek
Pythonでのファイルの作成、データの入出力をここでは扱います。open()でファイル作成する時の読み書きのモード、write()での書き込み、read()での読み込み方、withステートメント、seek()での位置の移動を学びます。

こんなコードになります。

import json

fruits = {
    "fruit":
        [
            {"name": "apple", "price": "100"},
            {"name": "orange", "price": "200"}
        ]
}

with open("fruits.json", "w") as f:
    json.dump(fruits, f)

withステートメントを使って、ファイル名をfruits.jsonと指定し、モードを”w”でファイルを開いて作成します。

これをfとして扱い、dump()を使ってJSONデータのfruitsをファイルに書き込みます。

実行するとこうなります。

同じ作業ディレクトリ内にfruits.jsonが作成されます。このファイルを開くと、横長で全部は見えませんが、上記右側のようにJSON形式で作成されています。

スポンサーリンク

JSONファイルの読み込み

今度はこの作成したファイルのデータを読み込んでみましょう。

同じくwithステートメントを使って書いてみます。

import json

with open("fruits.json", "r") as f:
    print(json.load(f))

ファイルの書き込みと同じようにwithステートメントでファイルを指定して開きます。ただし、ここは読み込みなのでモードを”r”にします。

読み込みはload()を使います。読み込んだデータをpirntで出力してみました。

実行するとこうなります。

JSONファイルから読み込まれたデータがPython形式で出力されているのがわかります。

スポンサーリンク

まとめ

JSON(JavaScript Object Notation)は、JavaScriptをベースに作られた軽量のデータ交換フォーマットで、WEB開発やデータ交換などでさまざまに利用されています。

JSONデータは辞書型なのでとても読みやすく、Pythonでもjsonモジュールをインポートすれば、簡単に利用できます。

Pythonスクリプト上のJSONデータの読み込み書き込みにはdumps()、loads()を使い、JSONファイルの読み込み書き込みには、dump()、load()を使います。関数名のsがあるかどうかに注意しましょう。

同じ辞書型のデータでもPython形式はシングルクォート、JSON形式はダブルクォートで囲んでいるという違いがあることに注意しましょう。

Pythonの応用
スポンサーリンク
CodeGraffitiをフォローする

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