有一个学生类,里面有名字,年龄,电话属性
class Student:
def __init__(self,name='',age=0,tel=0):
self.name =name
self.age =age
self.tel =tel
self.sex = '男'
def show_info(self):
print(self.__dict__)
def __repr__(self):
return str(self.__dict__)
有一个狗类,里面有名字,年龄等属性
class Dog:
def __init__(self,name='',age=0):
self.name = name
self.age = age
def __repr__(self):
return str(self.__dict__)
将对象写成json文件并保存在本地
#学生对象和狗对象是分别保存在两个json文件中
def object_json2(obj:object):#obj是对象,不同的对象保存成不同的json文件
file_name = obj.__class__.__name__+'.json'
try:
with open(file_name, 'r', encoding='utf-8') as f:
list1 = json.load(f)
except FileNotFoundError:
list1 = []
with open(file_name, 'w', encoding='utf-8') as f:
list1.append(obj.__dict__)#obj.__dict__把类的对象的属性和值以字典方式返回
json.dump(list1,f)
#创建学生对象,狗对象 调用object_json2方法
stu1 = Student('xiaohong',22,31)
dog1= Dog('xiaobai',22)
object_json2(stu1)
object_json2(dog1)
#读出指定对象
def get_all_info(type):
file = type.__name__
with open(file+'.json', 'r', encoding='utf-8') as f:
list1 = json.load(f)
new_list = []
for dict1 in list1:
object =type()
for key in dict1:
setattr(object,key,dict1[key])
new_list.append(object)
return new_list
#打印学生对象,狗对象
print('学生',get_all_info(Student))
print('狗',get_all_info(Dog))
打印结果:
学生 [{'name': 'xiaohong', 'age': 22, 'tel': 31, 'sex': '男'}]
狗 [{'name': 'xiaobai', 'age': 22}]
不同对象转换成不同json文件(读写操作)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1.数据格式(字符串) ExtraData={"type":"1","id":"10030101","title"...
- NSString *jsonPath = @"/Users/kuju/Desktop/city.json"; NS...
- 有时开发过程中,经常需要调试接口,但是可能经常没有网络,导致调试无法正常进行。 对此可以自己手动设置一些假数据,也...
- 有时开发过程中,经常需要调试接口,但是可能经常没有网络,导致调试无法正常进行。 对此可以自己手动设置一些假数据,也...