• json,pickle模块


    json

    • json文件并不是python独有的,所有的语言都有json,可以跨平台/语言传输数据
    • json文件中只能写入python中的dict/list/str/in/float/bool/None数据类型
    import json
    

    序列化

    • 保存数据(从内存到硬盘这个过程叫做序列化,这个序列化必须得规定格式)
    • 这里保存的格式为json

    反序列化

    • 把json文件从硬盘中读取到内存

    1.dumps / loads

    dic = {'name': 'lilei'}
    
    res = json.dumps(dic)
    print(res, type(res))
    
    res = json.loads(res)
    print(res, type(res))
    
    {"name": "lilei"} <class 'str'>
    {'name': 'lilei'} <class 'dict'>
    

    2.dump / load

    with open('test.json', 'w', encoding='utf-8') as fw:
        json.dump(dic, fw)
        
    with open('test.json', 'r', encoding='utf-8') as fr:
        data = json.load(fr)
        
    print(data)
    
    {'name': 'lilei'}
    

    pickle

    • pickle也是序列化与反序列化的过程
    • pickle支持python中的任意数据类型,所以不能跨平台(不同平台的函数一定是不同的)
    • pickle模块序列化过程是以二进制形式来进行转化的

    1.dumps / loads

    import pickle
    
    def func():
        print('f1')
        
    res = pickle.dumps(func)
    print(res)
    pickle.loads(res)()
    
    b'x80x03c__main__
    func
    qx00.'
    f1
    

    2.dump/load

    with open('test.pickle', 'wb') as fw:   # 格式为pkl也可以
        pickle.dump(func, fw)
        
    with open('test.pickle', 'rb') as fr:
        data = pickle.load(fr)
      
    data()
    
    f1
    
  • 相关阅读:
    【转】c++继承中的内存布局
    Google 开源项目风格指南
    常见面试题
    PHP7.1中使用openssl替换mcrypt
    phpunit实践笔记
    PHP的错误处理
    CI的扩展机制
    #CI的MVC实现
    Laravel中的队列处理
    laravel的模块化是如何实现的
  • 原文地址:https://www.cnblogs.com/lucky75/p/10999906.html
Copyright © 2020-2023  润新知