PythonでJsonファイルを使用する方法

2019年11月22日

みなさまおはこんばんにちは、せなです

今回はPythonでのJSONファイルの扱い方法について解説したいと思います

Jsonとは

Jsonについてよくわからないという方のために簡単に説明させていただきます

Jsonは異なるプログラミング言語間でのデータの受け渡しを効率的に行うためのデータ記述言語です

JsonはJavascriptと似た記述形式ですが、Javascriptのみでしか使えないわけではないです

Jsonは以下のような記述形式で記述されます

[
    "apple":{
        "brand": "サンふじ",
        "price": 120
    },
    "grape":{
        "brand": "ピオーネ",
        "price": 360
    }
]

いくつかのルールを下のリストに載せておきます

・リストは[]で囲います
Key:Valueとして記述します
・文字列は「""」で囲います
・複数のまとまりがある場合には「{}」で囲います
・複数のまとまりがある場合には「,」で区切ります

Jsonのファイル拡張子は「.json」とされています

JsonをPythonで使う

Jsonファイルの読み込み:load()関数

Jsonを扱うにはJsonファイルをプログラム中に読み込ませる必要があります

Jsonファイルを読み込ませるためには以下のように記述する必要があります

import json

with open('sample.json', 'r') as file:
    data = json.load(file)
    print(data)

----結果----
[{'apple': {'brand': 'サンふじ', 'price': 120}, 'grape': {'brand': 'ピオーネ', 'price': 360}}]

「import json」はJsonを扱う上で必須となりライブラリです

「open( )」でJsonファイルを開きます
「’r’」は読み込みモードです

「json.load(file)」でJsonファイルを読み込みます

「data」にはJsonファイルの内容が「dict型」として入っています

Jsonファイルへの書き込み:dump()関数

Jsonファイルに書き込みを行うには「dump()関数」を使用します

Jsonファイルに書き込むためには以下のように記述します

import json

dic = {"orange":{"brand": "愛媛みかん", "price": 70}}
with open('sample.json', 'w') as file:
    json.dump(dic, file)

open()内の「’w’」は書き込みモード(上書き)です

「json.dump(dic, file)」でdicの値を書き込みます

上書きですのでJsonファイル内の元ある記述は消えてしまいます

読み込んだJsonをJson形式に変える:dumps()関数

Jsonファイルをload()関数を使って読み込むと「dict型」で保存されてしまいます

これをJson形式で使用したいという方のためにあるのが「dumps()関数」となります

以下にdumps()の使い方を記述します

import json
with open('sample.json', 'r') as file:
    data = json.load(file)
    print(type(data))
    data2 = json.dumps(data)
    print(type(data2))

----結果----
class 'dict'
class 'str'

dumps()を使って取得した値はstr型となり直列化されます

また、「loads()関数」を使用することでdict型へ戻すこともできます

import json
with open('sample.json', 'r') as file:
    data = json.load(file)
    print(type(data))
    data2 = json.dumps(data)
    print(type(data2))
    data3 = json.loads(data2)
    print(type(data3))

----結果----
class 'dict'
class 'str'
class 'dict'

Jsonファイルへの追加書き込み

Jsonファイルへ追加で書き込む方法を以下の記事で解説しています
参考にしてください

リンク:PythonでJSONファイルに追加の書き込みをする方法