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)