zoukankan      html  css  js  c++  java
  • json && pickle 反序列化

     json 

    介绍:序列化将一段命令转换成字符串,上传到文件内,

       用的时候在从文件内把字符串转回命令,

       从而实现一个挂起的功能。

     

    案列:

    复制代码
    #字典
    info = {
        'name':'alex',
        'age':'22'
    }
    
    #序列化文件
    import json
    f = open("test.txt","w")
    f.write(json.dumps(info))
    f.close()
    
    #反序列化文件
    f = open("test.txt","r")
    import json
    data = json.loads(f.read())
    print(data["age"])
    复制代码

    注:通过json模块对命令行与字符串之间的转化。

    注:json默认只支持简单的数据类型,字典,字符串,像类,函数无法实现转换。

    注:json在不同语言中进行数据交互。

    注:json.dumps("命令"):将命令行转换成字符串。

    注:json.loads("字符串"):将字符串转回命令。

     

     

     pickle 

    介绍:序列化将一段命令转换成字符串,上传到文件内,

       用的时候在从文件内把字符串转回命令,

       从而实现一个挂起的功能。

     

    案例1:

    需求:使用pickle模块,在字典中将函数数据类型进行转换,并调用。

    复制代码
     1 #序列化
     2 def xsk():
     3     print("Kevin")
     4 info = {
     5     'name':'alex',
     6     'age':'22',
     7     "Kevin":xsk
     8 }
     9 
    10 
    11 f = open("test.txt","wb")
    12 import pickle
    13 f.write(pickle.dumps(info))
    14 f.close()
    15 
    16 #反序列化
    17 def xsk():
    18     print("66666666")
    19 import pickle
    20 f = open("test.txt","rb")
    21 data = pickle.loads(f.read())
    22 data["Kevin"]()
    复制代码

     

    案例2:

    需求:使用pickle,将转换数据导入到,文件中。

    复制代码
     1 def xsk():
     2     print("Kevin")
     3 info = {
     4     'name':'alex',
     5     'age':'22',
     6     "Kevin":xsk
     7  }
     8 f = open("test.txt","wb")
     9 import pickle
    10 pickle.dump(info,f)
    复制代码

    案例3:

    需求:使用pickle读取文件中的内容。

    复制代码
    1 def xsk():
    2     print("66666666")
    3 import pickle
    4 f = open("test.txt","rb")
    5 data = pickle.load(f)
    6 data["Kevin"]()
    复制代码

    二.pickle可支持的python数据格式。

    写入

    复制代码
    import shelve
    
    d = shelve.open("shelve_test")
    
    info = {'age':22}
    
    d["info"] = info
    复制代码

    读取

    import shelve
    
    d = shelve.open("shelve_test")
    
    d.get("info")

    注:写入文件内容,会固定内存数据。

    get是读取指定数据。

    items是读取全部数据。

    注:pickle只有在python语言中可以使用。

    注:pickle默认显示二进制需要加上参数b

    注:函数在转换的过程中转换的是指定的数据,不是内存地址。两个程序间的内存是不可以访问的。

    注:pickle.dumps("命令"):将命令行转换成字符串。

    注:pickle.loads("字符串"):将字符串转回命令。

    注:pickle.load(文件名):可以实现读取文件的功能。

    注:json.load(文件名):可以实现读取文件的功能。

    注:写入文件,推荐只写入一次,因为默认只有一行。

    注:如果要写入多次,推荐写入到不同的文件内。

     

  • 相关阅读:
    HDU5877
    HDU5874
    HDU5875
    广西党史知识竞赛活动
    知识竞答小程序更新记录
    答题小程序批量导入时增加对图片的支持
    关注】答题赢话费,安全用妆知识竞赛小程序上线啦!
    反向代理应知应会
    抽奖助手小程序v3
    答题小程序功能列表
  • 原文地址:https://www.cnblogs.com/pyxuexi/p/13871083.html
Copyright © 2011-2022 走看看