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中使用
    
    '''
  • 相关阅读:
    VysorPro助手
    Play 2D games on Pixel running Android Nougat (N7.1.2) with Daydream View VR headset
    Play 2D games on Nexus 6P running Android N7.1.1 with Daydream View VR headset
    Native SBS for Android
    ADB和Fastboot最新版的谷歌官方下载链接
    How do I install Daydream on my phone?
    Daydream Controller手柄数据的解析
    蓝牙BLE传输性能及延迟分析
    VR(虚拟现实)开发资源汇总
    Android(Java)控制GPIO的方法及耗时分析
  • 原文地址:https://www.cnblogs.com/schut/p/8436782.html
Copyright © 2011-2022 走看看