zoukankan      html  css  js  c++  java
  • Json、Pickle

    Json

    JSON是一个序列化模块,一种用于存储和交换数据的语法。

    JSON是用JavaScript对象表示法(JavaScript object notation)格式编写的文本。

    可以将python数据类型 --—> json数据类型 --—>字符串 --—> 文件中

    其他语言要想用python的数据

    文件中 -–—> 字符串 -–—> json 数据格式 -–—> 其他语言的数据类型

    在json中,所有的字符串都是双引号

    元组比较特殊,若转成json数据,内部会将元组变成列表

    set是不能换号json数据

    json.dumps 序列化(编码),将对象编码成json对象

    import json
    import json
    d = {
        'name':'zcy',
        'age':18,
    }
    a = json.dumps(d)
    print(a)
    {"name": "zcy", "age": 18}
    

    json.loads 反序列化(解码),该函数返回python字典的数据类型

    b = json.loads(a)
    print(b)
    {'name': 'zcy', 'age': 18}
    

    json.dump不需要使用write()方法, 只需要写哪个字典、哪个文件即可;而.dumps()需要使用.write()方法写入

    保存json数据时,用.json作文文件的后缀名

    with open('user.json','w',encoding='utf-8') as f:
        json.dump(数据,句柄f)
    

    json.load传的是文件对象,而loads传的是字符串; 使用loads时需要先读文件在使用,load则不用先读

    with open('user.json','r',encoding='utf-8')
    data = json.load(f)
    print(data)
    

    当将Python对象转换为JSON时,Python对象将被转换为对应JSON (JavaScript)类型:

    Python JSON
    dict Object
    list Array
    tuple Array
    str String
    int Number
    float Number
    True true
    False false
    None null

    pickle

    pickle是一个python自带的序列化模块

    优点:可以支持python中所有的数据类型

    ​ 可以直接存'bytes'类型 的数据,pickle存取速度更快

    缺点:只能支持python使用,不能跨平台

    默认情况下,pickle数据格式使用相对紧凑的二进制表示。如果您需要最佳尺寸特征,则可以有效地压缩数据。

    要序列化对象层次结构,只需调用该dumps()函数即可。同样,要对数据流进行反序列化,请调用该loads()函数

  • 相关阅读:
    android事件拦截处理机制详解
    序列化
    事件系统的一般性
    Android应用启动、退出分析
    Android Activity.startActivity流程简介
    ActivityThread
    Android Activity学习笔记——Activity的启动和创建
    attachBaseContext
    新认识的类
    深入理解Intent和IntentFiler(一)
  • 原文地址:https://www.cnblogs.com/kai-/p/11882196.html
Copyright © 2011-2022 走看看