• 模块 json 和 pickle


    序列化

    序列:字符串

    序列化:将其它数据类型转换成字符串的过程。

    反序列化:字符串转成其它数据类型。

    序列化的目的

    1:以某种存储形式使用自定义对象持久化。

    2:将对象从一个地方传递到另一个地方。

    3:是程序更具有维护性。

    json 和 pickle 模块

    用于序列化的两个模块

    json,用于字符串和 python 数据类型间进行转换。

    pickle,用于 python 特有的数据类型和 python 的数据类型进行转换。

    注意:pickle 仅用于 python

    • json
    # dumps 和 loads
    import json
    
    dic = {'a':1,'b':2,'c':3}
    res = json.dumps(dic) # 序列化:将一个字典转换成一个字符串
    print(res,type(res))
    # {"a": 1, "b": 2, "c": 3} <class 'str'>
    res1 = json.loads(res) # 反序列化:将一个字符串格式的字典转换成一个字典
    # 注意:要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示。
    print(res1,type(res1))
    # {'a': 1, 'b': 2, 'c': 3} <class 'dict'>
    
    # 也可处理嵌套的数据类型
    lis = [1,2,['a','b','c'],3,{'k1':'a','k2':'b','k3':'c'}]
    res = json.dumps(lis)
    print(res)
    # [1, 2, ["a", "b", "c"], 3, {"k1": "a", "k2": "b", "k3": "c"}]
    res1 = json.loads(res)
    print(res1)
    # [1, 2, ['a', 'b', 'c'], 3, {'k1': 'a', 'k2': 'b', 'k3': 'c'}]
    
    # dump 和 load
    import json
    
    dic = {'name':'zkim','age':18,'hobby':'running'}
    with open('user_info','w',encoding='utf-8')as f:
        json.dump(dic,f)
    # dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件
    
    with open('user_info','r',encoding='utf-8')as f:
        res = json.load(f)
        print(res)
    # load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回
    
    • pickle
    import pickle
    
    # dumps 和 loads
    dic = {'name':'zkim','hobby':'running'}
    str_dic = pickle.dumps(dic)
    print(str_dic) # 一串二进制
    
    str_dic1 = pickle.loads(str_dic)
    print(str_dic1) 
    # {'name': 'zkim', 'hobby': 'running'}
    
    
    # dump 和 load
    with open('userinfo.txt','wb')as f:
        pickle.dump(dic,f)
    with open('userinfo.txt','rb')as f:
        res = pickle.load(f)
        print(res)
    # {'name': 'zkim', 'hobby': 'running'}
    
    千里之行,始于足下。
  • 相关阅读:
    微信企业号-上传、获取临时素材文件
    微信企业号-身份验证
    【转】android 电池(三):android电池系统
    【转】android 电池(二):android关机充电流程、充电画面显示
    【转】android 电池(一):锂电池基本原理篇
    【转】android 物理按键
    【转】android 电容屏(三):驱动调试之驱动程序分析篇
    【转】android 电容屏(二):驱动调试之基本概念篇
    【转】android 电容屏(一):电容屏基本原理篇
    名言警句
  • 原文地址:https://www.cnblogs.com/jincoco/p/11329636.html
Copyright © 2020-2023  润新知