zoukankan      html  css  js  c++  java
  • 序列化及反序列化

    1、序列化:

    序列化:从数据类型--->字符串的过程;

    反序列化:字符串--->数据类型的过程;

    序列化用到的模块有json、pickle、shelve

    json
    #通用的序列化格式
    #只有很少的一部分数据类型能够通过json转化为字符串
    pickle
    #所有的Python数据类型都可以转化为字符串类型
    #pickle序列化的数据类型只有Python能够理解,且部分反序列化依赖Python代码
    shelve
    #序列化句柄
    #使用序列号句柄直接操作,比较方便
    2、json中有序列化方法dumps,反序列化方法loads
    import json
    dic = {'k1':'22'}
    print(type(dic),dic)
    str_d = json.dumps(dic)
    print(type(str_d),str_d)
    
    dic_a = json.loads(str_d)
    print(type(dic_a),dic_a)
    

     3、json中对文件内容操作的序列化操作dump,反序列化操作load

    1 import json
    2 dic = {'k1':'','k2':'广东'}
    3 f = open('xuliehua','w',encoding='utf-8')
    4 json.dump(dic,f,ensure_ascii=False)
    5 f.close()
    6 f = open('xuliehua',encoding='utf-8')
    7 res = json.load(f)
    8 f.close()
    9 print(type(res),res)
    View Code

     4、pickle模块方法

    pickle模块有四个功能:dumps、dump(序列化及存储功能)、loads(反序列化及读取)、load(不仅可以序列化字典、列表,可把Python里任意数据类型序列化)
    pickle序列化以后是byte类型数据,一般用在Python内部使用,如果被序列化的文件要被java、js等语言读取则还是用Json,所以如果序列号是字典或列表请优先
    用json。
     1 import  pickle
     2 dic = {'k1':'v1','k2':'v2','k3':'v3'}
     3 str_dic = pickle.dumps(dic)
     4 print(str_dic)
     5 
     6 dic2 = pickle.loads(str_dic)
     7 print(dic2)
     8 
     9 import time
    10 struct_time1 = time.localtime(1000000000)
    11 struct_time2 = time.localtime(2000000000)
    12 f = open('pickle_test_file','wb')
    13 pickle.dump(struct_time1,f)
    14 pickle.dump(struct_time2,f)
    15 f.close()
    16 
    17 f = open('pickle_test_file','rb')
    18 struct_time1 = pickle.load(f)
    19 struct_time2 = pickle.load(f)
    20 print(struct_time1.tm_year)
    21 print(struct_time2.tm_year)
    22 f.close()
    View Code
    1 b'x80x03}qx00(Xx02x00x00x00k1qx01Xx02x00x00x00v1qx02Xx02x00x00x00k2qx03Xx02x00x00x00v2qx04Xx02x00x00x00k3qx05Xx02x00x00x00v3qx06u.'
    2 {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    3 2001
    4 2033
    结果

     

  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/xiaofei1106/p/12791756.html
Copyright © 2011-2022 走看看