[Python3]序列化

序列化
序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes

用于序列化的两个模块
    json:用于字符串和python数据类型间进行转换      文件结尾.json
    pickle:用于python特有的类型和python的数据类型间进行转换       文件结尾.pkl

    json模块提供了四个功能: dumps,dump,loads,load
    pickle模块提供了四个功能: dumps,dump,loads,load


只是把数据类型转成字符串存到内存里的意义?
json.dumps json.loads
1.把内存数据通过网络 共享给远程其他人
2.定义了不同语言之间的交互规则
    1.纯文本,坏处是不能共享复杂的数据类型
    2.xml,坏处是占用空间大
    3.json,简单,可读性好

pickle和json用法完全一样


json VS pickle
json:
    优点:跨语言,体积小
    缺点:只能支持int\str\list\tuple\dict
pickle:
    优点:专为python设计,支持python所有的数据类型
    缺点:只能在python中使用,存储数据占用空间大

shelve模块
    shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。
    序列化:

        import shelve

        f = shelve.open('shelve_test')  # 打开一个文件

        names = ["alex", "rain", "test"]
        info = {'name':'alex','age':22}


        f["names"] = names  # 持久化列表
        f['info_dic'] = info

        f.close()


    反序列化:

        import shelve

        d = shelve.open('shelve_test')  # 打开一个文件

        print(d['names'])
        print(d['info_dic'])


        #del d['test'] #还可以删除

猜你喜欢

转载自blog.csdn.net/TynMhxx/article/details/81271682
今日推荐