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
-
ref.
- 7. 入力と出力 — Python 3.5.1 ドキュメント
- 19.2. json — JSON エンコーダおよびデコーダ — Python 3.5.1 ドキュメント
- 29.1. sys — システムパラメータと関数 — Python 3.5.1 ドキュメント
tags: python json
Posted by NI-Lab. (@nilab)