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  而言 最好是每次转换只出现一次 

  • 相关阅读:
    Git之不明觉厉11-利其器source tree
    GUI for git|SourceTree|入门基础
    UIButton
    NSDictionary
    注释方法、代码块加快捷键注释
    UIActionSheet
    UIActivityIndicatorView
    UIPickerView
    UIImageView
    UIAlertView
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/9048387.html
Copyright © 2011-2022 走看看