zoukankan      html  css  js  c++  java
  • 大聊Python----json与pickle数据序列化

    用于序列化的两个模块

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

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

    Json模块提供了四个功能:dumps、dump、loads、load

    那我们先来看看json怎么使用的吧!

    关于序列化操作,看看屌丝是怎么写的!

    ##序列化操作##
    
    info = {
        "name":"sutaoyu",
        "age" :"25"
    }
    
    f = open("text.text","w")
    f.write(str(info))    
    
    f.close()
    
    ##反序列化操作##
    
    f = open("text.text","r")
    
    data = eval(f.read())
    print(data["age"])
    f.close()

    text.text文件里的内容为:

    {'name': 'sutaoyu', 'age': '25'}

    反序列化操作的结果为:

    25

    下面看看大神是怎么装逼的!

    ##序列化##
    
    import json
    info = {
        "name":"sutaoyu",
        "age" :"25"
    }
    
    f = open("text.text","w")
    f.write( json.dumps(info) )
    
    f.close()
    
    ##反序列化##
    
    import json
    f = open("text.text","r")
    
    data = json.loads(f.read())
    print(data["age"])
    f.close()

    反序列化操作的结果为:

    25

    是不是觉得程序很简单啊?

    那就玩个大的!pickle模块!

    pickle模块提供了四个功能:dumps、dump、loads、load

    ## 序列化 ##
    
    import pickle
    
    def sayhi(name):
        print("hello,",name)
    
    info = {
        "name":"sutaoyu",
        "age" :"25",
        "func":sayhi
    }
    
    f = open("text.text","wb")
    f.write( pickle.dumps(info) ) # f.write(pickle.dumps(info)) == pickle.dump(info,f)
    
    f.close()
    
    ## 反序列化 ##
    
    import pickle
    
    def sayhi(name):
        print("hello,",name)
    
    f = open("text.text","rb")  # rb 处理的是 二进制 ,r 处理的是 字符串
    
    data = pickle.loads(f.read())  # data = pickle.loads(f.read()) == pickle.load(f) 

    # print(data)

    print(data["age"])

    print(data["func"]("Alex"))
    f.close()

    反序列化得出的结果为:

     25

    hello, Alex
    None

  • 相关阅读:
    Angular中文api
    Angular各版本和组件下载
    判断一个浏览器是否支持opacity
    查找函数参数名称
    运行时代码求值
    简单的动画引擎
    利用闭包特性改写addEventListener的回调函数
    springboot指定redis库编号配置实现
    springboot获取IOC(ApplicationContext)实例
    ajax-springMVC提交表单的方式
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/9250226.html
Copyright © 2011-2022 走看看