zoukankan      html  css  js  c++  java
  • json与pickle模块

    Python-19

    1. json与pickle模块

    什么是序列化和反序列化

    • 序列化:是将内存中的数据结构,转换成一种中间格式,将转化后的中间格式存储到硬盘,或者基于网络传输
    • 反序列化:是将硬盘中或者网路中传过来的中间格式,转换成内存中的数据结构

    2. 序列化和反序列化有什么用

    • 将状态通过中间格式存储到硬盘,可以保存程序的运行状态
    • 数据可以跨平台交互,不同的编程语言,通过序列化成中间格式就可以互相交互
    • 存到硬盘的文本文件都是字符串,再次使用时,需要将硬盘中的数据转化成以前的数据类型状态

    3. json与pickle模块的区别

    json

    • 优点:jison具有跨平台性,所有编程语言都能转成json格式
    • 缺点:只能支持python的部分数据类型

    pickle

    • 优点:支持python的所有数据了理性
    • 缺点:pickle只能识别python,不能跨平台

    ③ JSON类型和Python类型的对应关系

    Alt text

    4. json的的序列化

    json.dumps(内存的数据)

    Alt text

    • 说明:json不能识别单引号,只能使用双引号,因此而,json序列化的过程中会把单引号转成双引号
    # 导入json模块
    import json
    # 内存中数据
    dic={'name':'xut','age':18,'sex':'male'}
    # json序列化:内存中的数据类型---->json中间格式
    json_str=json.dumps(dic)
    # print(json_str,type(json_str))
    # 将序列化中间格式写到文件
    with open(r'db.json','wt',encoding='utf-8') as f:
        f.write(json_str)
    

    Alt text

    json.dump(内存中数据对象,文件))

    • json.dump可以将上面的两步进行合并
    import json
    dic={'name':'xut','age':18,'sex':'male'}
    with open(r'db.json','wt',encoding='utf-8') as f:
        json.dump(dic,f)
    

    ③ 总结

    • 序列化不同的数据类型,就写到不同的文件中

    5. json的反序列化

    json.loads(文件中的中间格式)

    Alt text




  • 相关阅读:
    pspc命令使用(转)
    NSArray数组的使用常用方法(转)
    css兼容的问题 持续更新
    关于memcache
    drupal7 学习笔记(持续更新中...)
    JavaScript的继承 转载
    浏览器的缓存机制
    我的js单例模式
    javascript运行机制
    javascrpt绑定事件之匿名函数
  • 原文地址:https://www.cnblogs.com/itone/p/9203923.html
Copyright © 2011-2022 走看看