python-序列化与json

把变量从内存中变成可存储或传输的过程称之为序列化或pickling。 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。

把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

pickle.dumps()方法把任意对象序列化成一个bytes,然后,就可以把这个bytes写入文件。

import pickle

d=dic(name='bob',age=20,score=88)

pick.dumps(d)

f=open('dump.txt','web')

pickle.dump(d,f)

f.close()

当我们要把对象从磁盘读到内存时,可以先把内容读到一个bytes,然后用pickle.loads()方法反序列化出对象,也可以直接用pickle.load()方法从一个file-like Object中直接反序列化出对象。

f=open('dump.txt','rb')

d=pickle.load(f)

f.close

python变量(内存)    pickle.dump序列   磁盘

磁盘    pickle.load反序列  python变量(内存)

JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:

JSON类型 Python类型
{} dict
[] list
"string" str
1234.56 int或float
true/false True/False
null None

python变量(内存)    json.dumps序列   磁盘

磁盘    json.loads反序列  python变量(内存)

JSON标准规定JSON编码是UTF-8

定制化json

import json

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__))

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143192607210600a668b5112e4a979dd20e4661cc9c97000

 

posted @ 2017-04-28 22:14  emma0804  阅读(157)  评论(0编辑  收藏  举报