python_json序列化和反序列化
序列化
import json
dic = {'name':'shb', 'age':'28'} print(json.dumps(dic))
反序列化;json.loads()
dic = {'name':'shb', 'age':'28'} print(json.dumps(dic)) dic2 = json.loads(json.dumps(dic)) print(dic2) 打印: {"name": "shb", "age": "28"} {'name': 'shb', 'age': '28'}
将 类 序列化:方法一
lass Student(object): def __init__(self, name, age, score): self.name = name self.age = age self.score = score def student2dict(std): return { 'name': std.name, 'age': std.age, 'score': std.score } s = Student('Bob', 20, 88) print (json.dumps(s, default=student2dict)) 打印; {"name": "Bob", "age": 20, "score": 88}
方法二:
lambda obj: obj.__dict__ 会将任意的对象,转换成字典的方式
sort_keys=True 会按照字典中的键来按照ASCII方式来排序
indent=4 会按照键值对以间隔4来直观的显示
class Student(object): def __init__(self, name, age, score): self.name = name self.age = age self.score = score s = Student('Bob', 20, 88) print(json.dumps(s, default=lambda obj: obj.__dict__, sort_keys=True, indent=4)) 打印; { "age": 20, "name": "Bob", "score": 88 }
这不是开往幼儿园的车~