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

    一、json序列化模块

      1、序列化:将内存数据转成字符串加以保存。

      2、反序列化:将字符串转成内存数据加以读取。

    data = { '北京':{
                         '五道口':{
                             'sohu':'引擎',
                         }
                       }
                   }
    # dumps <-->  loads
    '''
        只是把数据类型转成字符串存到内存(json.dumps,json.loads)里的意义?
        1、把你的内存数据通过网络远程共享给其他人
        2、定义了不同语言之间的交互规则
            <1> 纯文本:不能共享复杂的数据类型
            <2> xml:占空间大
            <3> json:简单,可读性好
    '''
    d = json.dumps(data) # 仅转成字符串  <class 'str'>
    print(d,type(d))     # {"u5317u4eac": {"u4e94u9053u53e3": {"sohu": "u5f15u64ce"}}}
    
    d_1 = json.loads(d)  # 将字符串转成原本的数据类型  <class 'dict'>
    print(d_1,type(d_1))           # {'北京': {'五道口': {'sohu': '引擎'}}}
    
    # dump  <-->  load
    f = open('test.json','w') # 先打开再读写
    d2 = json.dump(data,f) # 转成字符串并写入文件
    
    f1 = open('test.json','r')
    d_2 = json.load(f1) # 将文件转成原来的数据类型
    print(d_2)  # {'北京': {'五道口': {'sohu': '引擎'}}}

     

    二、pickle序列化模块

    #!/usr/bin/env python3
    #-*- coding:utf-8 -*-
    # write by congcong
    
    import pickle
    
    dict = {'name':'cc','age':21}
    len = ['python','hello','world']
    
    # dumps <--> loads
    d = pickle.dumps(dict) # 字符串转成bytes类型
    print(d) # b'x80x03}qx00(Xx04x00x00x00nameqx01Xx02x00x00x00ccqx02Xx03x00x00x00ageqx03Kx15u.'
    d_1 = pickle.loads(d)  # bytes类型转为原数据类型
    # print(d_1)  # {'name': 'cc', 'age': 21}
    
    # dump <--> load
    # pk = open('data.pkl','wb')
    # d2 = pickle.dump(dict,pk) # 字符串转成bytes类型,并保存到硬盘
    
    pk_r = open('data.pkl','rb') # 将硬盘里的bytes类型转为原数据类型
    d_2 = pickle.load(pk_r)
    print(d_2)  #  {'name': 'cc', 'age': 21}
    
    '''
    json 和 pickle 的区别:
        json  支持的数据类型 str ,int ,tuple , list , dict ,可跨语言
         
        pickle  支持python里所有的数据类型,但只能在python中使用
    
    '''
  • 相关阅读:
    springboot访问项目中某个module的图片(服务器拿不到)
    ValidForm ajaxurl 进行表单验证检验用户名是否存在
    jrebel热部署配置
    form标签之form:checkboxes
    springboot 整合jsp过程中的一些问题
    springboot的一些配置
    mysql5.7解压版
    [转载][翻译] 利用JSF、SpringFramework和Hibernate构建Web应用的实例讲述
    获取本机MAC地址
    个人职业生涯讨论
  • 原文地址:https://www.cnblogs.com/schut/p/8436782.html
Copyright © 2011-2022 走看看