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中使用
    
    '''
  • 相关阅读:
    NFC性价比高频读卡器首选方案:FM17550
    关于ESP8266和ESP8285的对比
    有没有比NRF51822更好的智能穿戴蓝牙方案
    zigbee CC2530首选方案模组:TZU06A1
    PAN3501兼容AS3933-BTST
    NRF51822和NRF52832的主要区别
    集成模拟温度传感器低成本2.4G CC2500RGPR 中文手册
    USB2.0主机控制器 UPD720114 简单详解
    存储器HK1225-7EQ 使用说明书资料
    爬虫 + 数据
  • 原文地址:https://www.cnblogs.com/schut/p/8436782.html
Copyright © 2011-2022 走看看