JSON ファイルを読み書きする JsonFile クラス。


$ cat myutils.py

import json

class JsonFile:

  def __init__(self, path):
    self.path = path

  def read(self):
    with open(self.path, "r") as f:
      data = json.load(f)
    return data

  def write(self, data):
    with open(self.path, "w") as f:
      json.dump(data, f, indent=2)

サンプル JSON ファイルを用意。


$ cat hoge.json

{ "name": "Alice", "age": 10 }

サンプル JSON ファイルを読み込み、データを追加して、 JSON ファイルに書き込むサンプルコード。


$ cat main.py

import sys

from myutils import JsonFile

path = sys.argv[1]

jf = JsonFile(path)

data = jf.read()
print(data)

data["friends"] = ["Lorina", "Edith"]
print(data)
jf.write(data)

サンプルコードの実行結果。


$ python3 main.py hoge.json
{'age': 10, 'name': 'Alice'}
{'age': 10, 'friends': ['Lorina', 'Edith'], 'name': 'Alice'}

サンプルコードが出力した JSON ファイル。


$ cat hoge.json
{
  "name": "Alice",
  "friends": [
    "Lorina",
    "Edith"
  ],
  "age": 10
}

今回の環境: Debian jessie + Python 3


$ uname -mrsv
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64

$ cat /etc/debian_version 
8.5

$ python3 --version
Python 3.4.2

tags: python json

Posted by NI-Lab. (@nilab)