python虫虫

JSON

2019-06-17  本文已影响32人  猛犸象和剑齿虎
import json
d=dict(name='bob',age=20,score=88)
print(json.dumps(d))

结果:

{"age": 20, "score": 88, "name": "bob"}

反序列化:

import json
json_str='{"age": 20, "score": 88, "name": "bob"}'
print(json.loads(json_str))

结果:

{"age": 20, "score": 88, "name": "bob"}
import json
class Student():
    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}

由于Student对象不是一个可序列化的json对象,所以专门写了一个转换函数用json的可选参数default=转换函数,default可以吧任意一个对象变成一个可序列化的json对象。
理解了这一步,我们将进一步简化。

class Student():
    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__))

把任意的class实例变成dict,通常class实例都有一个dict属性,它就是一个字典,用来存储实例变量。
(感觉还是不懂啊,太抽象了。)

上一篇 下一篇

猜你喜欢

热点阅读