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