zoukankan      html  css  js  c++  java
  • 序列化和反序列化(json 和pickle)dumps 为序列化, json为反序列化

    json 可以在不同语言中进行使用 

    下面先介绍一下json的适用方法

    import json, pickle
    t1 = {
        'name':'alex',
        'password':'123',
        'age' : '12'
    }
    
    t1 = json.dumps(t1)  #进行序列化,把t1被转换成字符串
    f = open('t1.txt', encoding='utf-8', mode='w')  #utf-8的编码方式
    f.write(t1) # 写入t1,这时候的t1的样子还是原来的样子
    f.close()
    f = open('t1.txt', encoding='utf-8', mode='r') #打开文件
    t = f.read() #读取文件内容
    print(json.loads(t)) #反序列化,重新转换为dict形式

    pickle 只能在python中使用 

    json 和 pickle 的语法相同 ,pickle 可以用来传递函数  

    下面以pickle为例

    序列化.py

    def say():
        print('hello')
    
    lis = {
        'name':'alex',
        'password':'123',
        'func': say  #传入函数的内存地址
    }
    f = open('t2.txt', mode='wb') #以二进制的方式打开
    lis = pickle.dumps(lis) #进行序列化,转换后的格式是二进制
    f.write(lis) #写入文件
    f.close()
    
    f = open('t2.txt', mode='rb')
    t = f.read()
    data = pickle.loads(t) #反序列化
    data['func']()  #验证函数是否还是可执行

    对于json.dumps 和 json.loads  而言 最好是每次转换只出现一次 

  • 相关阅读:
    kettle 连接 SQL Server 异常
    Quartz.NET
    过滤器和拦截器
    Spring Web MVC(一)
    Spring(三)之自动装配、表达式
    spring(四)之基于注解(Annotation-based)的配置.md
    Spring(一)之IOC、bean、注入
    Spring(二)之配置.md
    cookie和session详解
    jsp基础与提高(EL、JSTL)
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/9048387.html
Copyright © 2011-2022 走看看