41 lines
1014 B
Python
41 lines
1014 B
Python
# json 文件实现
|
|
|
|
import json
|
|
|
|
from storage.base_storage import BaseStorage
|
|
|
|
|
|
class JSONStorage(BaseStorage):
|
|
def __init__(self, filename="data.json"):
|
|
self.filename = filename
|
|
# 如果文件不存在,先创建空字典
|
|
try:
|
|
with open(self.filename, "r") as f:
|
|
pass
|
|
except OSError:
|
|
with open(self.filename, "w") as f:
|
|
f.write("{}")
|
|
|
|
def _read_all(self):
|
|
with open(self.filename, "r") as f:
|
|
return json.load(f)
|
|
|
|
def _write_all(self, data):
|
|
with open(self.filename, "w") as f:
|
|
json.dump(data, f)
|
|
|
|
def save(self, key, value):
|
|
data = self._read_all()
|
|
data[key] = value
|
|
self._write_all(data)
|
|
|
|
def load(self, key, default=None):
|
|
data = self._read_all()
|
|
return data.get(key, default)
|
|
|
|
def delete(self, key):
|
|
data = self._read_all()
|
|
if key in data:
|
|
del data[key]
|
|
self._write_all(data)
|