json的用法
json的数据转换
将对象转为字典
1.这是可以实现一行一行读取的发方法,文件大的时候就需要用到这种方法
import json
class Dict():
def __init__(self,name,age):
self.name = name
self.age = age
def d2dict(d):
return {'name':d.name,'age':d.age}
if __name__ == '__main__':
d = Dict('进杰',18)
with open('1.text','w',encoding='utf-8') as f:
str1 = json.dumps(d, default=d2dict,ensure_ascii=False)
f.write(str1)
2.这个是一下子读取完.write方法都不用写
import json
class Dict():
def __init__(self,name,age):
self.name = name
self.age = age
def d2dict(d):
return {'name':d.name,'age':d.age}
if __name__ == '__main__':
d = Dict('进杰',18)
with open('1.text', 'w',encoding="utf-8") as f:
json.dump(d, f, default=d2dict,ensure_ascii=False)
将字典转为对象
import json
class Dict():
def __init__(self, name, age):
self.name = name
self.age = age
def dict2d(d):
return Dict(d['name'],d['age'])
if __name__== '__main__':
with open('1.text','r') as f:
obj =json.loads(f.read(), object_hook=dict2d)
print(obj)
#for line in f.readlines():当f里面有多个对象时,分行阅读
#obj = json.loads(line, object_hook=dict2a)
#print(obj)