json的api有下面4个:
json.loads() 将json转换为dict
json.dumps() 将dict转换为json
json.load() 将json文件转换为dict
json.dump() 将dict转换为json文件
类和json的转化
import json
class User:
def __init__(self,name,password):
self.name = name
self.password = password
def __str__(self):
return self.name+" "+self.password
#类转json_1 json.dumps()
user = User("fengmq1","12345678");
person_json = json.dumps(user.__dict__)
print('person json:', person_json)
#类转json_2 json.dumps()
def convert2json(person):
return {
'name': person.name,
'password': person.password
}
user = User("fengmq2","12345678");
person_json = json.dumps(user, default=convert2json)
print('person json:', person_json)
#json转类1 json.loads()将json转化成字典,类需要我们自己构造。
def convert2json(dict_json):
return User(dict_json['name'], dict_json['password'])
person = json.loads('{"name": "fengmq3", "password": "123456"}', object_hook=convert2json)
print('person:', person)
执行结果:
字典和类的转化:
import json
#字典转json
user={"name": "冯明强", "password": "12345678"}
print(type(user),":", user)
user_json = json.dumps(user,ensure_ascii=False) # 转换为json ,默认转成json后中文是乱码,加入ensure_ascii=False
print(type(user_json),":", user)
#json转字典
user_json='{"name": "fengmq2","password":"12345678"}'
print(type(user_json),":", user_json)
user = json.loads(user_json)
print(type(user),":", user)
dict 保存为json文件,和读取json文件为dict
import json
user = {"name": "冯明强", "password": "12345678"}
with open('user.json', 'w') as f:
json.dump(user, f,ensure_ascii=False)
import json
with open('user.json', 'r') as f:
dict=json.load(f)
print(dict)