zoukankan      html  css  js  c++  java
  • pickle 序列化模块

    # ### pickle 序列化模块
    '''
    把不能够直接存储的数据,变得可存储就是序列化
    把存储好的数据,转化成原本的数据类型,叫做反序列化
    
    php: 序列化与反序列化
    serialize
    unserialize
    '''
    
    # 导入pickle 模块  => 模块.方法()
    import pickle
    #dumps 把任意对象序列化成一个bytes
    lst = [1,2,3,4,4,5]
    res = pickle.dumps(lst)
    print(res,type(res))
    # b'x80x03]qx00(Kx01Kx02Kx03Kx04Kx04Kx05e.'
    
    #loads 把任意bytes反序列化成原来数据
    res = pickle.loads(res)
    print(res,type(res))
    
    
    # encode decode 能实现序列化么?
    '''只有字符串可以使用encode或者decode ,容器类型数据等不可以.'''
    # res = lst.encode("utf-8")
    # print(res)
    
    
    # 对函数进行序列化
    def func():
    	print("我就是个姑娘,小燕子,赵薇,还珠格格")
    	
    func()
    
    # 序列化成字节流
    res = pickle.dumps(func)
    print(res)
    
    # 反序列化字节流 恢复原来的数据类型
    res = pickle.loads(res)
    print(res)
    res()
    
    
    # 对迭代器进行序列化
    it = iter(range(10))  
    from collections import Iterator,Iterable
    print(isinstance(it,Iterator))
    res = pickle.dumps(it)
    res = pickle.loads(res)
    for i in res:
    	print(i)
    
    # 所有的数据类型都可以通过pickle模块进行序列化.
    
    
    #dump  把对象序列化后写入到file-like Object(即文件对象)
    #load  把file-like Object(即文件对象)中的内容拿出来,反序列化成原来数据
    it = iter(range(10)) 
    with open("ceshi.pkl",mode="wb") as fp:
    	pickle.dump(it,fp)
    
    with open("ceshi.pkl",mode="rb") as fp:
    	res = pickle.load(fp)
    
    print(res)
    for i in res:
    	print(i)
    

      

  • 相关阅读:
    [转]mysql视图学习总结
    [转]mysql索引详解
    mysql索引的操作
    [转]mysql的约束
    mysql表的操作
    【转】mysql的数据类型
    java泛型
    java 8新特性
    Dubbo有意思的特性介绍
    dubbo + zookeeper
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/10920482.html
Copyright © 2011-2022 走看看