下面是一个示例代码,展示了如何编写一个通用的JsonFileDb,并将其与特定类型绑定:
import json
class JsonFileDb:
def __init__(self, filename):
self.filename = filename
def save(self, data):
with open(self.filename, 'w') as file:
json.dump(data, file)
def load(self):
try:
with open(self.filename, 'r') as file:
data = json.load(file)
return data
except FileNotFoundError:
return None
# 定义一个特定类型的类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person(name={self.name}, age={self.age})"
# 使用JsonFileDb操作Person对象
db = JsonFileDb('data.json')
# 保存Person对象到文件
person = Person('Alice', 25)
db.save(person.__dict__)
# 从文件加载Person对象
data = db.load()
if data:
loaded_person = Person(**data)
print(loaded_person)
else:
print("No data found.")
在上述示例中,我们首先定义了一个通用的JsonFileDb类,它可以保存和加载JSON数据。然后,我们定义了一个特定类型的类Person,该类具有name和age属性。我们使用JsonFileDb类来保存和加载Person对象。
在保存对象时,我们将Person对象转换为字典(使用person.__dict__
),然后将其保存到文件中。在加载对象时,我们从文件中加载数据,并使用Person(**data)
将数据转换为Person对象。
请注意,上述示例中的数据仅用于演示目的。在实际使用中,您可以根据需要调整JsonFileDb类和特定类型类的实现。