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

    把内存数据转换字符叫序列化
    把字符转成内存数据类型反序列化

    json,用于字符串 和 python数据类型间进行转换
    dumps 和loads 匹配使用
    dumps 只能转成字符串,loads只能从字符串转换成数据类型。只能保存在内存里。

    import json
    
    date = {
        'roles':[
            {'role': 'monster', 'type': 'pig', 'HP': '50'},
            {'role': 'hero', 'type': '关羽', 'HP': '80'}
        ]
    }
    l = {'a':1, 'b':2}
    
    d = json.dumps(date)
    d2 = json.loads(d)

    dump 转成字符串并写入文件, load,读文件并转成数据类型

    import json
    
    date = {
        'roles':[
            {'role': 'monster', 'type': 'pig', 'HP': '50'},
            {'role': 'hero', 'type': '关羽', 'HP': '80'}
        ]
    }
    l = {'a':1, 'b':2}
    
    with open('json.file', 'r+', encoding='UTF-8') as f:
        json.dump(date, f)  #写入文件
        json.dump(l,f)      #写入文件
        date = json.load(f) #读取文件

    json.dumps

    json.loads
    1.把内存数据通过网络远程给其他人
    2定义不同语言之前的交互规则,跨平台
      1.纯文本,坏处:不能共享复杂的数据类型
      2.xml坏处:占空间大
      3.json,简单,可读性好
      load 只能一次

    pickle,用于python特有的类型 和 python的数据类型间进行转换
    pickle.dumps pickle.loads 匹配使用

    import pickle
    d = {'name': 'zheng', 'age': 23}
    l = [1,2,3,4,'rain']
    
    a = pickle.dumps(d)
    b = pickle.dumps(l)
    
    pickle.loads(a)
    pickle.loads(b)

    pickle.dump pickle.load   匹配使用

    l = [1,2,3,4,5]
    
    
    f = open('pick.pkl', 'wb')
    pickle.dump(l,f)
    
    
    
    f = open('pick.pkl', rb')
    pickle.load(f)

    json支持的数据类型:
      str,int,tuple,list,dict
    pickle支持的数据类型:
      支持python所有数据类型
      只能在python使用

  • 相关阅读:
    福大软工1816 · 第六次作业
    福大软工1816 · 第五次作业
    BETA 版冲刺前准备
    Alpha 事后诸葛亮(团队)
    Alpha 答辩总结
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/10083903.html
Copyright © 2011-2022 走看看