zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    2016年蓝桥杯B组C/C++决赛题解
    2016年蓝桥杯B组C/C++决赛题目
    线段树区间更新 费马小定理|魔豆传奇
    2015年蓝桥杯B组C/C++决赛题解
    欧拉线性筛 与 欧拉函数 + 几道例题
    2015年蓝桥杯B组C/C++决赛题目
    2017年蓝桥杯B组C/C++决赛题解
    2017年蓝桥杯B组C/C++决赛题目
    2019 蓝桥杯国赛 B 组模拟赛 题解
    2018年蓝桥杯B组C/C++决赛题解
  • 原文地址:https://www.cnblogs.com/emma-zhu/p/6783512.html
Copyright © 2011-2022 走看看